[solved] Collision Code Not Working

J

JayR

Guest
Collision code not working how I want it to.. Maybe I'm doing it all wrong?

What I'm trying to do:
1) when player enters an outer range, increase boost by +2
2) when player enters an inner range, increase boost by +2 (now total of +4)
3) when moving from inner range to outer range, back to +2
4) leaving the range, +0

Code:
/// @param radius The range that warmth is provided to.
/// @param rate   The amount of warmth provided per second.

/* Uses:
    blueprint_warmth_provider_init() - Script for Object's Create Event.
    blueprint_warmth_provider_step() - Script for Object's Step Event.
*/

// Being closer to the fire source provides double the warmth.

var radius = argument[0],
    rate   = argument[1];
    
var inst = collision_circle(x, y, radius, character_jay, false, true);

if (inst != noone) {
    // On entering the outer range.
    if (outer_range == false && inner_range == false) {
        character_jay.warmth_boost += rate;
        outer_range = true;
    }
    
    if (outer_range == true && inner_range == false && collision_circle(x, y, radius / 2, character_jay, false, true)) {
        character_jay.warmth_boost += rate;   
        inner_range = true;
    } else {
        character_jay.warmth_boost -= rate;   
        inner_range = false;       
    }
} else {
            outer_range = false;
            inner_range = false;
}
 

TheouAegis

Member
if (outer_range == false && inner_range == false) {
character_jay.warmth_boost += rate;
outer_range = true;
}
else <<<<<<<
if (outer_range == true && inner_range == false && collision_circle(x, y, radius / 2, character_jay, false, true)) {
 
J

JayR

Guest
if (outer_range == false && inner_range == false) {
character_jay.warmth_boost += rate;
outer_range = true;
}
else <<<<<<<
if (outer_range == true && inner_range == false && collision_circle(x, y, radius / 2, character_jay, false, true)) {
Doesn't work right. On the outer range, it just ++ all the way up.
 
Top