void ActuallyDeploy(DeployementOrder de, Owner b) { var e = Instantiate(de.Unit.unit, transform.position + transform.forward, Quaternion.identity).GetComponent <unit>(); e.TransferOwner(b); b.AddFighter(de.Unit.civilianCost); if (!e.Ordered) { e.MoveTo(WhereToGo.transform.position); } if (e is SpecialUnit) { var s = e as SpecialUnit; s.GainEXP(de.ExtraExperience); s.Stat += de.stat; } OnCompletedUnit?.Invoke(e); }