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 SportsObject trigger; //this will cause the condition that ends the timer

    #endregion Fields

    #region Constructors

    public GameRuleActionWaitTimer(GameRuleEventHappenedCondition c, SportsObject tr, SportsObject ta,
		GameRuleDurationEffect e)
    {
        condition = c;
        trigger = tr;
        target = ta;
        effect = e;
    }
 public override bool checkCondition(SportsObject triggeringObject)
 {
     return triggeringObject.GetType() == selector.targetType() && conditionZone.objectsInZone.Contains(triggeringObject);
 }
 public virtual bool checkCondition(SportsObject triggeringObject)
 {
     return false;
 }
 public override SportsObject interceptSelection(SportsObject so)
 {
     lastInterceptionSource = so;
     return ((TeamPlayer)(so)).opponent;
 }
Example #6
0
 public SportsObject interceptSelection(SportsObject so)
 {
     foreach (GameRule metaRule in metaRulesList) {
         if (metaRule.condition.checkCondition(so))
             return ((GameRuleMetaRuleAction)(metaRule.action)).innerMetaRule.interceptSelection(so);
     }
     return so;
 }
Example #7
0
 public override SportsObject target(SportsObject source)
 {
     TeamPlayer shooter = ((Ball)(source)).currentPlayer;
     return shooter == null ? null : shooter.opponent;
 }
Example #8
0
 public abstract SportsObject target(SportsObject source);
 public override void takeAction(SportsObject source, SportsObject target)
 {
     target.Duplicate(1);
 }
 public override void cancelAction(SportsObject so)
 {
     so.StopBeingDizzy();
 }
 public override void cancelAction(SportsObject so)
 {
     so.StopBouncing();
 }
    public SportsObject target; //this is the object that the action happened to

    #endregion Fields

    #region Constructors

    public GameRuleActionWaitTimer(GameRuleEventHappenedCondition grehc, SportsObject sos, SportsObject sot,
		GameRuleDurationEffect grde)
    {
        condition = grehc;
        source = sos;
        target = sot;
        effect = grde;
    }
 public override float startDuration(SportsObject source, SportsObject target, GameRuleDurationEffect action)
 {
     GameRules.instance.waitTimers.Add(new GameRuleActionWaitTimer(untilCondition, source, target, action));
     return 1000000000.0f;
 }
 public override float startDuration(SportsObject source, SportsObject target, GameRuleDurationEffect action)
 {
     return duration;
 }
Example #15
0
 public virtual void handleSportsCollision(SportsObject sObject)
 {
 }
Example #16
0
 public override SportsObject target(SportsObject source)
 {
     return ((Ball)(source)).currentPlayer;
 }
Example #17
0
 public override SportsObject target(SportsObject source)
 {
     return ((TeamPlayer)(source)).opponent;
 }
 public abstract void cancelAction(SportsObject so);
Example #19
0
 public override SportsObject target(SportsObject source)
 {
     return source;
 }
 public abstract void takeAction(SportsObject source, SportsObject target);
Example #21
0
 public void startFlash(SportsObject so)
 {
     flashImage.gameObject.SetActive(true);
     Color targetColor = GameRules.instance.teamColors[so.team];
     flashImage.color = new Color(targetColor.r, targetColor.g, targetColor.b, 1.0f);
 }
 //returns the sportsobject that got affected, often the source
 public SportsObject takeAction(SportsObject source)
 {
     SportsObject target = GameRules.instance.interceptSelection(selector.target(source));
     if (target != null)
         innerEffect.takeAction(source, target);
     return target;
 }
Example #23
0
 public override void handleSportsCollision(SportsObject sObject)
 {
 }
 public override void cancelAction(SportsObject so)
 {
     so.Unfreeze();
 }
 public abstract SportsObject interceptSelection(SportsObject so);
 public override void takeAction(SportsObject source, SportsObject target)
 {
     target.Freeze(duration.startDuration(source, target, this));
 }
Example #27
0
 public override void handleSportsCollision(SportsObject sObject)
 {
     gameRules.SendEvent(new GameRuleEvent(GameRuleEventType.BallHitSportsObject, bl: this, so: sObject));
 }
 public override void takeAction(SportsObject source, SportsObject target)
 {
     ((TeamPlayer)(target)).ScorePoints(pointsGiven);
     GameRules.instance.spawnPointsText(pointsGiven, (TeamPlayer)(target));
 }
 public abstract float startDuration(SportsObject source, SportsObject target, GameRuleDurationEffect action);
 public override bool checkCondition(SportsObject triggeringObject)
 {
     return GameRules.derivesFrom(triggeringObject.GetType(), selector.targetType()) &&
         conditionZone.objectsInZone.Contains(triggeringObject);
 }