function Create(self) self.StartTimer = Timer(); self.healnum = 0; self.AttachedActors = {} end function Update(self) --Add nearby actors to the table if self.Lifetime < 100 then self.Vel.Y = 4; for actor in MovableMan.Actors do if actor.ID ~= self.ID and SceneMan:ShortestDistance(self.Pos,actor.Pos,SceneMan.SceneWrapsX).Magnitude < 40 then self.AttachedActors[#self.AttachedActors + 1] = actor; end end end --Move the parachute when the actor attached to it moves if #self.AttachedActors > 0 then for i = 1 , #self.AttachedActors do self.AttachedActors[i].Pos = self.Pos self.AttachedActors[i].Vel = self.Vel self.AttachedActors[i]:GetController():SetState(Controller.BODY_JUMP , false); self.AttachedActors[i]:GetController():SetState(Controller.BODY_JUMPSTART , false); self.AttachedActors[i]:GetController():SetState(Controller.BODY_CROUCH , false); self.AttachedActors[i]:GetController():SetState(Controller.MOVE_RIGHT , false); self.AttachedActors[i]:GetController():SetState(Controller.MOVE_LEFT , false); if self.AttachedActors[i]:GetController():IsState(Controller.HOLD_RIGHT) and self.Vel.X < 7 then self.Vel.X = self.Vel.X+.2; if self.RotAngle < .1 then self.RotAngle = self.RotAngle + .01 end elseif self.AttachedActors[i]:GetController():IsState(Controller.HOLD_LEFT) and self.Vel.X > -7 then self.Vel.X = self.Vel.X - .2; if self.RotAngle > -.1 then self.RotAngle = self.RotAngle - .01 end end end end --Gib when it hits the ground if self:GetAltitude(0,2) < 50 then self:GibThis(); end end