public override bool Arrive(AstroAI astronaut) { if (!Assignees.Contains(astronaut)) { Assignees.Add(astronaut); return(Arrive_individual(astronaut)); } return(false); }
protected override bool Leave_individual(AstroAI astronaut) { if (Assignees.Count == 0) { // stop showing cat videos mySpriteRenderer.sprite = BridgeSprite; } return(true); }
public override bool Leave(AstroAI astronaut) { if (Assignees.Contains(astronaut)) { Assignees.Remove(astronaut); return(Leave_individual(astronaut)); } return(false); }
public bool Claim(AstroAI astronaut = null) { if (currentState == BehaveStationStates.Abandoned) { currentState = BehaveStationStates.Claimed; OnTheirWay.Add(astronaut); return(true); } return(false); }
public override bool Leave(AstroAI astronaut) { if (Assignees.Contains(astronaut)) { mySpriteRenderer.sprite = BridgeSprite; Assignees.Remove(astronaut); return(true); } return(false); }
public override bool Arrive(AstroAI astronaut) { if (OnTheirWay.Contains(astronaut)) { OnTheirWay.Remove(astronaut); Assignees.Add(astronaut); currentState = BehaveStationStates.Occupied; return(true); } throw new ArgumentException("Arrive: Astronaut arrived without claiming first!"); }
public override bool Leave(AstroAI astronaut) { if (Assignees.Contains(astronaut) || OnTheirWay.Contains(astronaut)) { Assignees.Remove(astronaut); OnTheirWay.Remove(astronaut); if (Assignees.Count + OnTheirWay.Count == 0) { currentState = BehaveStationStates.Abandoned; } return(true); } return(false); }
public bool AssignBehavior(AstroAI astronaut) { //Sort stations by distance BehaveStations = BehaveStations.OrderBy(station => astronaut.myBody.Distance2Angle(station.PositionAngle)) .ToList(); //Find closest abandoned station foreach (var station in BehaveStations) { if (station.currentState == BehaveStationStates.Abandoned) { //set astronaut's station to that station station.Claim(astronaut); astronaut.myStats.myBehaveStation = station; return(true); } } // no free behave station was found return(false); }
protected virtual bool Arrive_individual(AstroAI astronaut) { return(true); }
protected override bool Arrive_individual(AstroAI astronaut) { // start showing cat videos mySpriteRenderer.sprite = BridgeSpriteCat; return(true); }
protected override bool Arrive_individual(AstroAI astronaut) { astronaut.myBody.ChangeThought(Thought.Pyromania); return(true); }
public abstract bool Leave(AstroAI astronaut);
public abstract bool Arrive(AstroAI astronaut);