public GameRuleEvent(GameRuleEventType et, SportsObject s, FieldObject t) { source = s; target = t; eventType = et; if (et == GameRuleEventType.Bump && t.GetType() == typeof(FieldObject)) param = t.sportName; else param = null; }
public static GameObject getEventIcon(GameRuleEventType et) { switch (et) { case GameRuleEventType.Kick: return GameRuleIconStorage.instance.kickIcon; case GameRuleEventType.Grab: return GameRuleIconStorage.instance.grabIcon; case GameRuleEventType.Bump: return GameRuleIconStorage.instance.bumpIcon; case GameRuleEventType.Smack: return GameRuleIconStorage.instance.smackIcon; default: throw new System.Exception("Bug: tried to get event icon for " + et); } }
public static string getEventText(GameRuleEventType et) { switch (et) { case GameRuleEventType.Kick: return " kicks "; case GameRuleEventType.Grab: return " grabs "; case GameRuleEventType.Bump: return " bumps into "; case GameRuleEventType.Smack: return " tackles "; default: throw new System.Exception("Bug: tried to get event text for " + et); } }
public GameRuleEventHappenedCondition(GameRuleEventType et, System.Type st, System.Type tt, string p) { eventType = et; param = p; sourceType = st; targetType = tt; //any event originating from a ball needs a ball //ideally it doesn't need to be holdable, but at the moment for practical reasons it does bool sourceIsBall = GameRules.derivesFrom(sourceType, typeof(Ball)); if (sourceIsBall) requiredObjectForSource = new GameRuleRequiredObject(GameRuleRequiredObjectType.HoldableBall, null); //our event type doesn't have a required object as its source else requiredObjectForSource = null; //ball-ball collision needs a second ball if (sourceIsBall && GameRules.derivesFrom(targetType, typeof(Ball))) requiredObjectForTarget = new GameRuleRequiredObject(GameRuleRequiredObjectType.SecondBall, null); //any event that involves a player holding a ball requires a holdable ball else if (eventType == GameRuleEventType.Kick || eventType == GameRuleEventType.Grab) requiredObjectForSource = new GameRuleRequiredObject(GameRuleRequiredObjectType.HoldableBall, null); //any field object collision that isn't with a boundary is with a goal else if (targetType == typeof(FieldObject) && param != "boundary") requiredObjectForTarget = new GameRuleRequiredObject(GameRuleRequiredObjectType.SpecificGoal, param); //our event type doesn't need have a required object as its target else requiredObjectForTarget = null; }
public GameRuleDesignComponentEventTypeDescriptor(GameRuleEventType etd, int dii) : base(GameRuleEvent.getEventIcon(etd), dii, null) { eventTypeDescribed = etd; }