private void PredictAbilitiesHelper(MTile tile, MAbility ability, bool lWeapon, CWeapon parentWeapon, bool wpnAbility)
        {
            var target     = tile.GetCurrentOccupant() as CChar;
            var prediction = new AgentAbilityData();

            prediction.Ability      = ability;
            prediction.LWeapon      = lWeapon;
            prediction.ParentWeapon = parentWeapon;
            prediction.Target       = target;
            prediction.Weight       = 0;
            prediction.WpnAbiltiy   = wpnAbility;
            if (ability.Data.Hostile)
            {
                if (target.Proxy.LParty != this._agent.Proxy.LParty)
                {
                    this.HandleAbility(prediction);
                    this._predictions.Add(prediction);
                }
            }
            else
            {
                if (target.Proxy.LParty == this._agent.Proxy.LParty)
                {
                    this.HandleAbility(prediction);
                    this._predictions.Add(prediction);
                }
            }
        }
Beispiel #2
0
 private void InitPredictAbility()
 {
     this.ActiveAbility = AbilityTable.Instance.Table[this._data.Ability];
     this.ActiveAbility.Data.ParentAction = this;
     if (this.Data.ParentWeapon != null)
     {
         this.ActiveAbility.Data.ParentWeapon = this.Data.ParentWeapon.Model;
     }
 }
        public List <Sprite> GetSingleFXSprites(MAbility a)
        {
            var path    = StringUtil.PathBuilder(ATTACK_PATH, a.Type.ToString());
            var stuff   = Resources.LoadAll(path);
            var sprites = new List <Sprite>();

            for (int i = 1; i < stuff.Length; i++)
            {
                sprites.Add(stuff[i] as Sprite);
            }
            return(sprites);
        }
        private void HandleAoEHover(CTile t, MAbility active)
        {
            var sprite = MapBridge.Instance.GetTileHighlightSprite();
            var tiles  = t.Model.GetAoETiles((int)(active.Data.AoE));

            foreach (var tile in tiles)
            {
                if (tile.Liquid)
                {
                    this._aoeTiles.Add(this.DecorateTileHandle(tile.Controller.LiquidHandle, sprite));
                }
                this._aoeTiles.Add(this.DecorateTileHandle(tile.Controller.Handle, sprite));
            }
        }
Beispiel #5
0
 private void InitProcessAbility()
 {
     GUIManager.Instance.SetGUILocked(true);
     GUIManager.Instance.SetInteractionLocked(true);
     this.ActiveAbility = AbilityTable.Instance.Table[this._data.Ability];
     this.ActiveAbility.Data.ParentAction = this;
     if (this.Data.ParentWeapon != null)
     {
         this.ActiveAbility.Data.ParentWeapon = this.Data.ParentWeapon.Model;
     }
     if (this.ActiveAbility.Data.CastDuration > 0 && this._castingInitialized == false)
     {
         this._castingTurnsRemaining = this.ActiveAbility.Data.CastDuration;
         this._castingInitialized    = true;
     }
 }
        private void HandleRaycastHover(CTile t, MAbility active)
        {
            var   sprite   = MapBridge.Instance.GetTileHighlightSprite();
            var   source   = CombatManager.Instance.GetCurrentlyActing().Tile;
            MTile initTile = null;

            if (source.Model.IsTileN(t.Model, active.Data.Range))
            {
                initTile = source.Model.GetN();
            }
            else if (source.Model.IsTileNE(t.Model, active.Data.Range))
            {
                initTile = source.Model.GetNE();
            }
            else if (source.Model.IsTileNE(t.Model, active.Data.Range))
            {
                initTile = source.Model.GetNE();
            }
            else if (source.Model.IsTileSE(t.Model, active.Data.Range))
            {
                initTile = source.Model.GetSE();
            }
            else if (source.Model.IsTileS(t.Model, active.Data.Range))
            {
                initTile = source.Model.GetS();
            }
            else if (source.Model.IsTileSW(t.Model, active.Data.Range))
            {
                initTile = source.Model.GetSW();
            }
            else if (source.Model.IsTileNW(t.Model, active.Data.Range))
            {
                initTile = source.Model.GetNW();
            }
            var tiles = source.Model.GetConvertedRaycastTiles(initTile, active.Data.Range);

            foreach (var tile in tiles)
            {
                if (tile.Liquid)
                {
                    this._aoeTiles.Add(this.DecorateTileHandle(tile.Controller.LiquidHandle, sprite));
                }
                this._aoeTiles.Add(this.DecorateTileHandle(tile.Controller.Handle, sprite));
            }
        }
Beispiel #7
0
 public void AddAbility(MAbility a)
 {
     if (a.WpnAbility)
     {
         var exists = this._wpnAbilities.Find(x => x.Type == a.Type);
         if (exists == null)
         {
             this._wpnAbilities.Add(a);
         }
     }
     else
     {
         var exists = this._activeAbilities.Find(x => x.Type == a.Type);
         if (exists == null)
         {
             this._activeAbilities.Add(a);
         }
     }
 }
        private void HandleArcHover(CTile t, MAbility active)
        {
            var args = new AbilityArgs();

            args.Source = CombatManager.Instance.GetCurrentlyActing();
            args.Target = t;
            var tiles = active.GetTargetedTiles(args);

            tiles.Remove(t);
            var sprite = MapBridge.Instance.GetTileHighlightSprite();

            foreach (var tile in tiles)
            {
                if (tile.Model.Liquid)
                {
                    this._aoeTiles.Add(this.DecorateTileHandle(tile.LiquidHandle, sprite));
                }
                this._aoeTiles.Add(this.DecorateTileHandle(tile.Handle, sprite));
            }
        }
        public Sprite GetAttackSprite(MAbility a)
        {
            var path = StringUtil.PathBuilder(ATTACK_PATH, a.Type.ToString());

            return(this.GetSprite(path));
        }