private void DrawMonsterPathGizmmo(MonsterPath monsterPath) { if (monsterPath.MonsterCheckpoints == null) { return; } MonsterCheckpoint prev = null; Vector3 prevPos = Vector3.zero; foreach (var checkpoint in monsterPath.MonsterCheckpoints) { Gizmos.color = Color.magenta; var ModelScale = MapRenderer.Instance.ModelScale; var position = new Vector3(checkpoint.X * ModelScale, MapRenderer.Instance.GetHeight(checkpoint.X, checkpoint.Z) + 0.5f, checkpoint.Z * ModelScale); Gizmos.DrawCube(position, new Vector3(1, 1, 1)); if (prev != null) { Gizmos.DrawLine(prevPos, position); } prev = checkpoint; prevPos = position; } }
public void ReachDestination() { if (CurrentPath.EndInStronghold) { GameManager.Instance.StrongholdDamage(MonsterPrototype.DamageOnStronghold); CurrentPath = null; GameObject.Destroy(gameObject); } else { CurrentPath = CurrentPath.GetAnyDestinationPath(GameManager.Instance.Game.CurrentLevel); CurrentCheckpointIndex = 0; } }
public ShieldedInvader(MonsterPath path) : base(path) { }
public FastInvader(MonsterPath path) : base(path) { }
public BasicInvader(MonsterPath path) : base(path) { }
public Invader(MonsterPath path) { _path = path; }
public ResurrectingInvader(MonsterPath path) { _incarnation1 = new BasicInvader(path); _incarnation2 = new StrongInvader(path); }
public StrongInvader(MonsterPath path) : base(path) { }