public override void Activate(CreatureStates Creature, Raycast Raycast, Good.Times.State State) { base.Activate (Creature, Raycast, State); if (State == State.BeginningOfTurn) { RecordHeight(Creature,Raycast); } if (State == State.Jump) { if (Raycast.SearchForCreature(Creature.Front,Creature.Storey) && Raycast.SearchForHeight(Creature.Front,true) && Creature.Jump >= Raycast.TargetMultipleCreature.Count) { float x = Raycast.TargetCreature.transform.position.x; float y = Raycast.TargetCreature.transform.position.y; float AddHeight = Raycast.TargetMultipleCreature.Select(h => h.Height).Sum(); Move(Creature,x,y + AddHeight); Creature.Storey = Raycast.TargetMultipleCreature.OrderByDescending(s => s.Storey).ToList()[0].Storey + 1; } } if (State == State.EndOfTurn) { RecordHeight(Creature,Raycast); Fall(Creature, Raycast); } }