Ejemplo n.º 1
0
    public static Dictionary <Vector2, TowerPositionData> CardinalTowersNoAnglesLoop(TowerSlotController self, Dictionary <Vector2, TowerSlotController> allTowers, CardinalSet cardinalSet)
    {
        Dictionary <Vector2, TowerPositionData> dict = new Dictionary <Vector2, TowerPositionData>();
        Vector2 selfPosition              = self.transform.position;
        float   towerDiscoveryRange       = StaticObjects.Instance.TowerSize;
        float   SecondTowerDiscoveryRange = SelectorTest2.instance.SecondDiscoveryRange;
        float   RangeMultiplier           = SelectorTest2.instance.SecondDiscoveryRangeMultiplier;

        for (int i = 0; i < cardinalSet.length; i++)
        {
            dict.Add(cardinalSet.directionsClockwise[i], new TowerPositionData(null as TowerSlotController, 999f));
        }
        foreach (var item in allTowers)
        {
            if (item.Value.name == self.name || item.Value == null)
            {
                continue;
            }

            TowerPositionQuery tq = new TowerPositionQuery(selfPosition, item.Key, towerDiscoveryRange);
            for (int i = 0; i < cardinalSet.length; i++)
            {
                if (cardinalSet.discoveryConditionsClockwise[i](tq))
                {
                    float d = Vector2.Distance(selfPosition, item.Key);
                    if (dict[cardinalSet.directionsClockwise[i]].Distance > d)
                    {
                        dict[cardinalSet.directionsClockwise[i]] = new TowerPositionData(item.Value, d);
                    }
                }
            }
        }

        return(dict);
    }
Ejemplo n.º 2
0
 public override void Action(TowerSlotController tsc)
 {
     foreach (var ta in Actions)
     {
         ta.ExecuteAction(tsc);
     }
 }
Ejemplo n.º 3
0
 public void initActions(TowerSlotController tsc)
 {
     parentTowerSlotController = tsc;
     North?.InitAction(tsc);
     East?.InitAction(tsc);
     South?.InitAction(tsc);
     West?.InitAction(tsc);
 }
Ejemplo n.º 4
0
 public void ExecuteAction(TowerSlotController tsc)
 {
     if (CanActionExecute())
     {
         Action(tsc);
     }
     actionCounter += 1;
 }
Ejemplo n.º 5
0
 public override void InitActionSpecific(TowerSlotController tsc)
 {
     foreach (var towerAction in Actions)
     {
         towerAction.towerComponent = towerComponent;
         towerAction.InitAction(tsc);
     }
 }
Ejemplo n.º 6
0
 protected void Awake()
 {
     TowerComponents = GetComponentsInChildren <TowerComponent>().ToList();
     foreach (var tc in TowerComponents)
     {
         tc.ParentTowerConroller = this;
     }
     TowerActionManager = GetComponent <TowerActionManager>();
     onInit            += delegate(TowerSlotController towerSlotController) { ParentSlotController = towerSlotController; };
     onInit            += delegate(TowerSlotController controller) { WeaponController = GetComponentInChildren <GenericWeaponController>(); };
     onInit            += TowerActionManager.initActionManager;
 }
Ejemplo n.º 7
0
 public void InitAction(TowerSlotController tsc)
 {
     ParentSlotController = tsc;
     PlayerResources.Instance.onMoneyzUpdate += EnoughMoneyzCheck;
     //PlayerResources.Instance.UpdateMoneyz(0);
     if (towerComponent == null)
     {
         InitActionSpecific(tsc);
     }
     else
     {
         InitActionSpecific(tsc);
         onInitAction += InitActionSpecific;
         towerComponent.onInitComponent += OnInitAction;
     }
 }
Ejemplo n.º 8
0
 public override void Action(TowerSlotController tsc)
 {
     ParentSlotController.PlaceNewTower(TowerArsenal.arsenal.BaseTowerWest.TowerPrefab);
 }
Ejemplo n.º 9
0
 public override void InitActionSpecific(TowerSlotController tsc)
 {
     Cost = TowerArsenal.arsenal.BaseTowerWest.Cost;
 }
Ejemplo n.º 10
0
 public override bool SpecificExecuteCondition(TowerSlotController tsc)
 {
     return(base.SpecificExecuteCondition(tsc));
 }
Ejemplo n.º 11
0
 public override void Action(TowerSlotController tsc)
 {
     ParentSlotController.PlaceNewTower(TowerPrefab);
 }
Ejemplo n.º 12
0
 public override void InitActionSpecific(TowerSlotController tsc)
 {
 }
Ejemplo n.º 13
0
 public override void Action(TowerSlotController tsc)
 {
     towerComponent.UpdateRange(RangeUpdate, DetectorsToApplyOn);
 }
Ejemplo n.º 14
0
 public void initActionManager(TowerSlotController tsc)
 {
     parentSlotController  = tsc;
     parentTowerController = tsc.ChildTower;
     Actions.initActions(tsc);
 }
Ejemplo n.º 15
0
 public void onActionTerminate(TowerSlotController tsc)
 {
     PlayerResources.instance.onMoneyzUpdate -= EnoughMoneyzCheck;
 }
Ejemplo n.º 16
0
 public override void Action(TowerSlotController tsc)
 {
     towerComponent.UpdateEffect(DamageUpdate, DamageEffects);
 }
Ejemplo n.º 17
0
    public override void InitActionSpecific(TowerSlotController tsc)
    {
        var q = towerComponent.GetEffectList().Where(x => x.EffectName() == DamageUpdate.EffectName()).ToList();

        DamageEffects = q;
    }
Ejemplo n.º 18
0
 public override void Action(TowerSlotController tsc)
 {
     tsc.PlaceNewTowerLegacy(UpgradeTowerObject.gameObject);
 }
Ejemplo n.º 19
0
 public virtual bool SpecificExecuteCondition(TowerSlotController tsc)
 {
     return(true);
 }
Ejemplo n.º 20
0
 public abstract void Action(TowerSlotController tsc);
Ejemplo n.º 21
0
 public abstract void InitActionSpecific(TowerSlotController tsc);
Ejemplo n.º 22
0
 public void OnInit(TowerSlotController tsc)
 {
     onInit?.Invoke(tsc);
 }
Ejemplo n.º 23
0
 public void OnTowerSelect(TowerSlotController tsc)
 {
     onTowerSelect?.Invoke(tsc);
 }
Ejemplo n.º 24
0
 public override void InitActionSpecific(TowerSlotController tsc)
 {
     DetectorsToApplyOn = towerComponent.GetTagDetectors();
 }