x


Damage over time on delay

I have this js set to make my charter take damage over time as long as its in my invisable collide but its doing 1 damage every second and I need to put it on a delay. I want it to do 5 damage every 3 seconds you are in it.

var damage: float = 15.0;
var playerStatus : Player_Status;




function OnTriggerEnter()
{
    playerStatus = GameObject.FindWithTag("Player").GetComponent(Player_Status);
}

function Update()
{
    if(playerStatus != null)
        playerStatus.ApplyDamage(damage);
}

function OnTriggerExit()
{
    playerStatus = null;
}
more ▼

asked Apr 03 '12 at 03:34 PM

Davidflynn gravatar image

Davidflynn
61 22 49 55

(comments are locked)
10|3000 characters needed characters left

1 answer: sort voted first
var damage: float = 15.0;
var playerStatus : Player_Status;
var damageDelay = 3.0;
private var lastDamage = -10.0; //Don't touch!!    

function OnTriggerEnter()
{
    playerStatus = GameObject.FindWithTag("Player").GetComponent(Player_Status);
}

function Update()
{
    if(playerStatus != null){
        if(Time.time > damageDelay+lastDamage){
            playerStatus.ApplyDamage(damage);

            lastDamage = Time.time;
        }
    }
}

function OnTriggerExit()
{
    playerStatus = null;
}

There you go, use a simple timer.

more ▼

answered Apr 03 '12 at 03:41 PM

OrangeLightning gravatar image

OrangeLightning
5.4k 47 57 112

its still just doing the damage every second non stop till he is dead

Apr 03 '12 at 03:51 PM Davidflynn

Well, that makes sense. I forgot something, fixed now.

Apr 03 '12 at 05:13 PM OrangeLightning
(comments are locked)
10|3000 characters needed characters left

Maybe making a function doDamage and calling WaitForSeconds? As you want 5 of damage every 3 seconds you can do:

if(playerStatus != null) {

doDamage();

}

function doDamage() {

yield WaitForSeconds(damageDelay);
playerStatus.ApplyDamage(damage/3):

}

When it reachs a certain amont of damage you can turn like a bool to false to lock the doDamage function.

more ▼

answered Apr 03 '12 at 03:59 PM

GutoThomas gravatar image

GutoThomas
593 32 46 47

(comments are locked)
10|3000 characters needed characters left
Your answer
toggle preview:

Up to 2 attachments (including images) can be used with a maximum of 524.3 kB each and 1.0 MB total.

Follow this question

By Email:

Once you sign in you will be able to subscribe for any updates here

By RSS:

Answers

Answers and Comments

Topics:

x984
x255
x248

asked: Apr 03 '12 at 03:34 PM

Seen: 563 times

Last Updated: Apr 03 '12 at 11:26 PM