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;
    }
Esempio n. 5
0
 public GameRuleDesignComponentEventTypeDescriptor(GameRuleEventType etd, int dii)
     : base(GameRuleEvent.getEventIcon(etd), dii, null)
 {
     eventTypeDescribed = etd;
 }