private void OnErrorInPath(AiEntity e) { if (e.GetCurrentTile() != null) { e.SetPath(_aiSystem.CalculateRandomPathByTier(e.GetCurrentTile().GetPosition(), e.getEntityInfo().Tier)); return; } e.SetPath(_aiSystem.CalculateRandomPathByTier(new Vector2(1, 1), e.getEntityInfo().Tier)); }
private void OnDoneInspection(AiEntity e) // doctor { e.SetPath(_aiSystem.CalculateRandomPathByTier(e.GetCurrentTile().GetPosition(), e.getEntityInfo().Tier)); if (e.getEntityInfo().IsDoctor) { e.OnAtTile -= instance.OnAtTile; } }
static public void AddAiEntity(AiEntity e) { instance._aiEntitys.Add(e); e.OnEndOfPath += instance.OnEndOfPath; e.OnErrorInPath += instance.OnErrorInPath; e.OnDoneInspection += instance.OnDoneInspection; // doctor if (e.getEntityInfo().IsDoctor) { e.OnStartInspection = instance.OnStartInspection; } }
private void OnStartInspection(AiEntity e) { if (e.getEntityInfo().IsDoctor) { if (e.getTarget() == null) { e.setTarget(this.getSickEntityInRange(e)); } else { this.doctorCanInspect(e, e.getTarget()); } e.SetPath(_aiSystem.CalulatePathTo(e.GetCurrentTile().GetPosition(), e.getTarget().GetCurrentTile().GetPosition())); e.OnAtTile += instance.OnAtTile; } }
private void OnAtTile(AiEntity e, TileObject t) { // doctor if (e.getEntityInfo().IsDoctor) { if (e.getTarget() == null) { e.setTarget(this.getSickEntityInRange(e)); } else { this.doctorCanInspect(e, e.getTarget()); } if (e.GetCurrentTile().GetPosition() == e.getTarget().GetCurrentTile().GetPosition()) { return; } e.SetPath(_aiSystem.CalulatePathTo(e.GetCurrentTile().GetPosition(), e.getTarget().GetCurrentTile().GetPosition())); } }
static public void SetNewRandomPath(AiEntity e) { e.SetPath(instance._aiSystem.CalculateRandomPathByTier(e.GetCurrentTile().GetPosition(), e.getEntityInfo().Tier)); }
private void getPath(AiEntity e) { if (e.GetCurrentTile() == null) { return; } // for normal calulate path to random tile e.SetPath(_aiSystem.CalculateRandomPathByTier(e.GetCurrentTile().GetPosition(), e.getEntityInfo().Tier)); }