예제 #1
0
        private Unit9 GetUnitToPurchase(AbilityId itemId)
        {
            if (GameManager.GameMode == GameMode.Turbo)
            {
                return(this.owner);
            }

            var flags = itemId.GetShopFlags();

            if ((this.GetUnitShopFlags(this.owner) & flags) != 0)
            {
                return(this.owner);
            }

            var courier = EntityManager9.Units.FirstOrDefault(x => x.IsCourier && x.IsAlly(this.owner) && x.IsAlive);

            if (courier == null)
            {
                return(null);
            }

            if ((this.GetUnitShopFlags(courier) & flags) != 0)
            {
                return(courier);
            }

            return(null);
        }
예제 #2
0
        private Unit9 GetUnitToPurchase(AbilityId itemId)
        {
            if (GameManager.GameMode == GameMode.Turbo)
            {
                return(this.owner);
            }

            var itemFlags      = itemId.GetShopFlags();
            var ownerShopFlags = this.GetUnitShopFlags(this.owner);

            //if (this.prioritizeSideShop && ownerShopFlags == ShopFlags.None && (itemFlags & ShopFlags.Side) != 0)
            //{
            //    return null;
            //}

            if (!this.nearShop)
            {
                ownerShopFlags |= ShopFlags.Base;
            }

            if ((ownerShopFlags & itemFlags) != 0)
            {
                return(this.owner);
            }

            if (this.nearShop)
            {
                return(null);
            }

            var courier = EntityManager9.Units.FirstOrDefault(x => x.IsCourier && x.IsAlly(this.owner) && x.IsAlive);

            if (courier == null)
            {
                return(null);
            }

            if ((this.GetUnitShopFlags(courier) & itemFlags) != 0)
            {
                return(courier);
            }

            return(null);
        }