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);
        }
    }