public bool IsEquiped(ItemIdentity itemIdentity)
        {
            if (this.RightHand != null)
            {
                if (this.RightHand.Identity == itemIdentity)
                {
                    return(true);
                }
            }

            if (this.LeftHand != null)
            {
                if (this.LeftHand.Identity == itemIdentity)
                {
                    return(true);
                }
            }

            if (this.Armor != null)
            {
                if (this.Armor.Identity == itemIdentity)
                {
                    return(true);
                }
            }

            return(false);
        }
    public void ProduceItem(ItemIdentity id)
    {
        bool alreadyHaveThisType = false;
        int  order = 0;

        if (this.m_Data.ProduceItem == null)
        {
            this.m_Data.ProduceItem = new List <KeyValuePair <ItemType, List <ItemIdentity> > >();
        }
        else
        {
            foreach (KeyValuePair <ItemType, List <ItemIdentity> > productList in this.m_Data.ProduceItem)
            {
                order += productList.Value.Count;
                if (productList.Key == id.itemType)
                {
                    alreadyHaveThisType = true;
                    productList.Value.Add(id);
                    break;
                }
            }
        }
        if (!alreadyHaveThisType)
        {
            List <ItemIdentity> newList = new List <ItemIdentity>()
            {
                id
            };
            this.m_Data.ProduceItem.Add(new KeyValuePair <ItemType, List <ItemIdentity> >(id.itemType, newList));
        }
        this.m_CommunicationHelper.SendProduceItemRequest(this.m_Data.BuildingID, id, order);
        this.m_AlreadyProduceItemCapacity++;
    }
 public ArmorDefenceModifier(float amount, ItemIdentity armorRequired) : base()
 {
     base.Duration = null;
     this.Amount   = amount;
     base.IsUsed   = false;
     this.Required = armorRequired;
 }
        internal bool HasItemEquiped(ItemIdentity requiredItem)
        {
            if (this.Armor != null)
            {
                if (this.Armor.Identity == requiredItem)
                {
                    return(true);
                }
            }

            //if (this.Holster.Any(weap => weap.Data.Identity == requiredItem))
            //    return true;

            if (this.RightHand != null)
            {
                if (this.RightHand.Identity == requiredItem)
                {
                    return(true);
                }
            }
            if (this.LeftHand != null)
            {
                if (this.LeftHand.Identity == requiredItem)
                {
                    return(true);
                }
            }

            return(false);
        }
 internal ItemModel CreateNewItem(ItemIdentity itemId, int mapId, Point position, int?subType)
 {
     return(base.Post(itemsAddress + "CreateNew/", new ItemModel()
     {
         Identity = (int)itemId, WorldMapId = mapId, WorldX = position.X, WorldY = position.Y, SubType = subType
     }));
 }
 public WeaponPowerModifier(float amount, ItemIdentity weaponRequired) : base()
 {
     base.Duration       = null;
     this.Amount         = amount;
     base.IsUsed         = false;
     this.WeaponRequired = weaponRequired;
 }
    public void SendCancelProduceItemRequest(ItemIdentity itemID)
    {
        ItemProduceCancelRequestParameter request = new ItemProduceCancelRequestParameter();

        request.ItemType = itemID.itemType;
        request.ItemNO   = itemID.itemNO;
        CommunicationUtility.Instance.CancelProduceItem(request);
    }
 public void AddItemToCamp(ItemIdentity item)
 {
     if (this.m_Data.AvailableItem == null)
     {
         this.m_Data.AvailableItem = new List <ItemIdentity>();
     }
     this.m_Data.AvailableItem.Add(item);
     this.m_AlreadyItemCapacity++;
 }
    public void SendFinishProduceItemRequest(ItemIdentity itemID, BuildingIdentity campID)
    {
        ItemProduceSuccessRequestParameter request = new ItemProduceSuccessRequestParameter();

        request.ItemType          = itemID.itemType;
        request.ItemNO            = itemID.itemNO;
        request.OwnerBuildingType = campID.buildingType;
        request.OwnerBuildingNO   = campID.buildingNO;
        CommunicationUtility.Instance.FinishProduceItem(request);
    }
    public void SendProduceItemRequest(BuildingIdentity factoryID, ItemIdentity itemID, int order)
    {
        ItemProduceRequestParameter request = new ItemProduceRequestParameter();

        request.FactoryBuildingType = factoryID.buildingType;
        request.FactoryBuildingNO   = factoryID.buildingNO;
        request.ItemType            = itemID.itemType;
        request.ItemNO       = itemID.itemNO;
        request.ProduceOrder = order;
        CommunicationUtility.Instance.ProduceItem(request);
    }
        private Item CreateItem(ItemIdentity identity)
        {
            switch (identity)
            {
            case ItemIdentity.Bag:
                return(new BagItem());

            case ItemIdentity.Gold:
                return(new GoldItem());

            case ItemIdentity.LeatherArmor:
                return(new LeatherArmorItem());

            case ItemIdentity.PlateArmor:
                return(new PlateArmorItem());

            case ItemIdentity.ClothRobe:
                return(new ClothArmorItem());

            case ItemIdentity.Dagger:
                return(new DaggerItem());

            case ItemIdentity.Sword:
                return(new SwordItem());

            case ItemIdentity.Bow:
                return(new BowItem());

            case ItemIdentity.PowerScoll:
                return(new PowerScrollItem());

            case ItemIdentity.Bandage:
                return(new BandageItem());

            case ItemIdentity.Corpse:
                return(new CorpseItem());

            default:
                throw new Exception("Unknown ItemIdentity!");
            }
        }
Example #12
0
 public ItemsCheckedInToInventory(ItemIdentity id, int count)
 {
     Count = count;
 }
Example #13
0
    public void InitialWithResponseData(FriendResponseParameter parameter, string friendName)
    {
        UserData userData = new UserData();

        userData.Name             = friendName;
        userData.Honour           = parameter.Honour;
        userData.Level            = parameter.Level;
        userData.CurrentStoreGold = parameter.PlayerGold;
        userData.CurrentStoreFood = parameter.PlayerFood;
        userData.CurrentStoreOil  = parameter.PlayerOil;
        userData.ConfigData       = ConfigInterface.Instance.PlayerConfigHelper.GetPlayerData(parameter.Level);

        this.m_FriendData           = new PlayerLogicData(userData);
        this.m_LogicObjects         = new Dictionary <BuildingType, Dictionary <int, BuildingLogicObject> >();
        this.m_ArmyObjects          = new Dictionary <ArmyType, Dictionary <int, FriendArmyParameter> >();
        this.m_Mercenaries          = new Dictionary <MercenaryType, int>();
        this.m_ItemObjects          = new Dictionary <ItemType, Dictionary <int, FriendItemParameter> >();
        this.m_AchievementBuildings = new Dictionary <int, AchievementBuildingLogicData>();
        this.m_Buffs           = new List <BuffLogicData>();
        this.m_Props           = new List <PropsLogicData>();
        this.m_ResourceManager = new ResourceManager();

        this.m_ArmyLevels = new Dictionary <ArmyType, int>();

        Dictionary <BuildingType, Dictionary <int, BuildingData> > datas =
            new Dictionary <BuildingType, Dictionary <int, BuildingData> >();

        this.m_RemovableObjects = new Dictionary <long, RemovableObjectLogicData>();

        int objectID = 0;

        foreach (FriendObjectParameter param in parameter.Objects)
        {
            RemovableObjectData data = new RemovableObjectData();
            data.BuilderBuildingNO = param.BuilderBuildingNO;
            data.Position          = new TilePosition(param.PositionColumn, param.PositionRow);

            if (param.IsRemoving)
            {
                if (param.BuilderBuildingNO.HasValue)
                {
                    data.RemainingWorkload = 0;
                }
                else
                {
                    data.RemainingWorkload = 1;
                }
            }
            data.RemovableObjectNo   = objectID;
            data.RemovableObjectType = param.ObjectType;
            data.ConfigData          = ConfigInterface.Instance.RemovableConfigHelper.GetRemovableObjectData(param.ObjectType);
            this.m_RemovableObjects.Add(objectID, new RemovableObjectLogicData(data));
            objectID++;
        }

        int buildingNo = 0;

        foreach (FriendAchievementBuildingParameter param in parameter.AchievementBuildings)
        {
            AchievementBuildingData data = new AchievementBuildingData();
            data.AchievementBuildingType = param.AchievementBuildingType;
            data.BuildingNo       = buildingNo++;
            data.BuildingPosition = new TilePosition(param.PositionColumn, param.PositionRow);
            data.Life             = param.Life;
            data.ConfigData       = ConfigInterface.Instance.AchievementBuildingConfigHelper.GetAchievementBuildingData(param.AchievementBuildingType);
            this.m_AchievementBuildings.Add(data.BuildingNo, new AchievementBuildingLogicData(data));
        }

        foreach (FriendBuffParameter buff in parameter.Buffs)
        {
            BuffData b = new BuffData();
            b.RelatedPropsType = buff.PropsType;
            b.RemainingCD      = 10;
            b.BuffConfigData   = ConfigInterface.Instance.PropsConfigHelper.GetPropsData(buff.PropsType).FunctionConfigData as PropsBuffConfigData;
            BuffLogicData data = new BuffLogicData(b);

            this.m_Buffs.Add(data);
        }

        int tempPropsID = 0;

        foreach (FriendPropsParameter props in parameter.Props)
        {
            PropsData       p = new PropsData();
            PropsConfigData propsConfigData = ConfigInterface.Instance.PropsConfigHelper.GetPropsData(props.PropsType);
            p.PropsConfigData  = propsConfigData;
            p.PropsNo          = tempPropsID++;
            p.PropsType        = props.PropsType;
            p.RemainingCD      = 10;
            p.RemainingUseTime = propsConfigData.MaxUseTimes;
            PropsLogicData data = new PropsLogicData(p);

            this.m_Props.Add(data);
        }

        foreach (FriendBuildingParameter param in parameter.Buildings)
        {
            BuildingConfigData configData = ConfigInterface.Instance.BuildingConfigHelper.GetBuildingData(param.BuildingTypeID, param.Level);

            BuildingData data = new BuildingData();
            data.BuilderBuildingNO = param.BuilderBuildingNO;
            data.BuildingID        = new BuildingIdentity(param.BuildingTypeID, param.BuildingNO);
            data.BuildingPosition  = new TilePosition(param.PositionColumn, param.PositionRow);
            data.Level             = param.Level;
            if (param.IsUpgrading)
            {
                if (param.BuilderBuildingNO.HasValue)
                {
                    data.UpgradeRemainingWorkload = 1;
                }
                else
                {
                    data.UpgradeRemainingWorkload = 0;
                }
            }
            if (param.IsResourceAccelerate)
            {
                data.RemainResourceAccelerateTime = 1;
            }
            if (param.IsArmyAccelerate)
            {
                data.RemainArmyAccelerateTime = 1;
            }
            if (param.IsItemAccelerate)
            {
                data.RemainItemAccelerateTime = 1;
            }

            data.ConfigData = configData;

            if (param.CurrentStoreGold.HasValue)
            {
                data.CurrentStoreGold = param.CurrentStoreGold.Value;
            }
            else if (configData.CanStoreGold)
            {
                this.m_ResourceManager.AddStorage(ResourceType.Gold, data.BuildingID, configData.StoreGoldCapacity);
            }
            if (param.CurrentStoreFood.HasValue)
            {
                data.CurrentStoreFood = param.CurrentStoreFood.Value;
            }
            else if (configData.CanStoreFood)
            {
                this.m_ResourceManager.AddStorage(ResourceType.Food, data.BuildingID, configData.StoreFoodCapacity);
            }
            if (param.CurrentStoreOil.HasValue)
            {
                data.CurrentStoreOil = param.CurrentStoreOil.Value;
            }
            else if (configData.CanStoreOil)
            {
                this.m_ResourceManager.AddStorage(ResourceType.Oil, data.BuildingID, configData.StoreOilCapacity);
            }

            if (!this.m_LogicObjects.ContainsKey(param.BuildingTypeID))
            {
                this.m_LogicObjects.Add(param.BuildingTypeID, new Dictionary <int, BuildingLogicObject>());
            }
            if (!datas.ContainsKey(param.BuildingTypeID))
            {
                datas.Add(param.BuildingTypeID, new Dictionary <int, BuildingData>());
            }
            this.m_LogicObjects[param.BuildingTypeID].Add(param.BuildingNO,
                                                          new BuildingLogicObject(data, (int)BuildingFunction.ProduceResource, false));
            datas[param.BuildingTypeID].Add(param.BuildingNO, data);

            data.AvailableMercenary = new List <MercenaryIdentity>();
            if (param.Mercenaries != null)
            {
                foreach (KeyValuePair <MercenaryType, int> mercenary in param.Mercenaries)
                {
                    MercenaryConfigData mercenaryConfigData = ConfigInterface.Instance.MercenaryConfigHelper.GetMercenaryData(mercenary.Key);
                    this.m_AlreadyArmyCapacity += mercenaryConfigData.CapcityCost * mercenary.Value;

                    for (int i = 0; i < mercenary.Value; i++)
                    {
                        data.AvailableMercenary.Add(new MercenaryIdentity(mercenary.Key, i));
                        if (!this.m_Mercenaries.ContainsKey(mercenary.Key))
                        {
                            this.m_Mercenaries.Add(mercenary.Key, 0);
                        }
                        this.m_Mercenaries[mercenary.Key]++;
                    }
                }
            }

            data.AvailableArmy = new List <ArmyIdentity>();
            if (param.Armies != null)
            {
                foreach (FriendArmyParameter army in param.Armies)
                {
                    if (!this.m_ArmyLevels.ContainsKey(army.ArmyType))
                    {
                        this.m_ArmyLevels.Add(army.ArmyType, army.ArmyLevel);
                    }

                    ArmyType       type           = army.ArmyType;
                    ArmyConfigData armyConfigData = ConfigInterface.Instance.ArmyConfigHelper.GetArmyData(army.ArmyType, army.ArmyLevel);
                    this.m_AlreadyArmyCapacity += armyConfigData.CapcityCost;
                    if (!this.m_ArmyObjects.ContainsKey(type))
                    {
                        this.m_ArmyObjects.Add(type, new Dictionary <int, FriendArmyParameter>());
                    }
                    ArmyIdentity armyID = new ArmyIdentity(type, this.m_ArmyObjects[type].Count);
                    data.AvailableArmy.Add(armyID);
                    this.m_ArmyObjects[type].Add(armyID.armyNO, army);
                }
            }
            data.AvailableItem = new List <ItemIdentity>();
            if (param.Items != null)
            {
                foreach (FriendItemParameter item in param.Items)
                {
                    ItemType type = item.ItemType;
                    if (!this.m_ItemObjects.ContainsKey(type))
                    {
                        this.m_ItemObjects.Add(type, new Dictionary <int, FriendItemParameter>());
                    }
                    ItemIdentity itemID = new ItemIdentity(type, this.m_ItemObjects[type].Count);
                    data.AvailableItem.Add(itemID);
                    this.m_ItemObjects[type].Add(itemID.itemNO, item);
                }
            }

            this.m_TotalCampCapacity += configData.ArmyCapacity;
        }

        Dictionary <ResourceType, Dictionary <BuildingIdentity, int> > result = this.m_ResourceManager.CalculateStorage
                                                                                    (userData.CurrentStoreGold, userData.CurrentStoreFood, userData.CurrentStoreOil);

        foreach (KeyValuePair <ResourceType, Dictionary <BuildingIdentity, int> > resource in result)
        {
            foreach (KeyValuePair <BuildingIdentity, int> r in resource.Value)
            {
                switch (resource.Key)
                {
                case ResourceType.Gold:
                {
                    datas[r.Key.buildingType][r.Key.buildingNO].CurrentStoreGold = r.Value;
                }
                break;

                case ResourceType.Food:
                {
                    datas[r.Key.buildingType][r.Key.buildingNO].CurrentStoreFood = r.Value;
                }
                break;

                case ResourceType.Oil:
                {
                    datas[r.Key.buildingType][r.Key.buildingNO].CurrentStoreOil = r.Value;
                }
                break;
                }
            }
        }
    }
 public InventoryItemCreated(ItemIdentity id, string name) : base(id)
 {
 }
 public CreateItemCommand(ItemIdentity itemId)
 {
     Id = itemId;
 }
Example #16
0
 public ItemLogicObject GetItemObject(ItemIdentity id)
 {
     return(this.m_ItemModule.GetItemObject(id));
 }
Example #17
0
        private Item CreateNewItem(ItemIdentity itemId, int mapId, Point position, int?subType)
        {
            ItemModel newItem = dataContext.CreateNewItem(itemId, mapId, position, subType);

            return(this.CreateItem(newItem));
        }
 private void Apply(InventoryItemCreated e)
 {
     _id        = e.Id;
     _activated = true;
 }
 public ItemDeletedEvent(ItemIdentity id)
 {
     Id = id;
 }
Example #20
0
 public InventoryItemDeactivated(ItemIdentity id) : base(id)
 {
 }
Example #21
0
 public ItemLogicObject GetItemObject(ItemIdentity id)
 {
     return(this.m_Items[id.itemType][id.itemNO]);
 }
 public InventoryItem(ItemIdentity id) : base(id)
 {
     base.ApplyChange(new InventoryItemCreated(id, "Hello"));
 }
 public CreateItemCommand(ItemIdentity itemId)
 {
     Id = itemId;
 }
Example #24
0
 protected override IItemFactory GetItemFactory(ItemIdentity identity)
 {
     return(new ServerItemFactory(identity));
 }
Example #25
0
 protected override IItemFactory GetItemFactory(ItemIdentity identity)
 {
     return(ClientItemFactory.Get(identity));
 }
Example #26
0
    protected virtual void ShowProgress()
    {
        if (!this.BuildingBehavior.Created)
        {
            return;
        }
        if (SceneManager.Instance.SceneMode == SceneMode.SceneVisit)
        {
            if (this.BuildingLogicData.CurrentBuilidngState != BuildingEditorState.Normal)
            {
                this.ActiveFacility(true);
            }
            else
            {
                this.ActiveFacility(false);
            }
            return;
        }
        if (this.BuildingLogicData.CurrentBuilidngState == BuildingEditorState.Update)
        {
            this.ActiveFacility(true);
            foreach (KeyValuePair <int, ProgressBarBehavior> pb in m_ProgressBarBehaviorDictionary)
            {
                if (pb.Key == 4)
                {
                    pb.Value.gameObject.SetActive(true);
                    pb.Value.SetProgressPosition(0);
                    pb.Value.SetProgressBar((this.BuildingLogicData.UpgradeWorkload - this.BuildingLogicData.UpgradeRemainingWorkload) / this.BuildingLogicData.UpgradeWorkload, this.BuildingLogicData.UpgradeRemainingWorkload / this.BuildingLogicData.AttachedBuilderEfficiency, false, string.Empty);
                }
                else
                {
                    pb.Value.gameObject.SetActive(false);
                }
            }
        }
        else
        {
            this.ActiveFacility(false);
            m_ProgressBarBehaviorDictionary[4].gameObject.SetActive(false);
            if (this.BuildingLogicData.CurrentBuilidngState == BuildingEditorState.Normal)
            {
                int order = 0;
                foreach (KeyValuePair <int, ProgressBarBehavior> pb in m_ProgressBarBehaviorDictionary)
                {
                    switch (pb.Key)
                    {
                    case 0:    //0 = UpgradeSpell
                        if (this.BuildingLogicData.ItemUpgrade.HasValue)
                        {
                            pb.Value.gameObject.SetActive(true);
                            pb.Value.SetProgressPosition(order);
                            float remainingTime = this.BuildingLogicData.ItemUpgradeRemainingTime;
                            float progress      = (this.BuildingLogicData.ItemUpgradeTotalWorkload - this.BuildingLogicData.ItemUpgradeRemainingWorkload) / (float)this.BuildingLogicData.ItemUpgradeTotalWorkload;
                            pb.Value.SetProgressBar(progress, remainingTime, true, ClientSystemConstants.Spell_ICON_COMMON_DICTIONARY[this.BuildingLogicData.ItemUpgrade.Value]);
                            order++;
                        }
                        else
                        {
                            pb.Value.gameObject.SetActive(false);
                        }
                        break;

                    case 1:    //ProduceSpell
                        if (this.BuildingLogicData.ItemProducts != null)
                        {
                            if (this.BuildingLogicData.ItemProducts.Count > 0)
                            {
                                pb.Value.gameObject.SetActive(true);
                                pb.Value.SetProgressPosition(order);
                                ItemIdentity    itemIdentity    = this.BuildingLogicData.ItemProducts[0].Value[0];
                                ItemLogicObject itemLogicObject = LogicController.Instance.GetItemObject(itemIdentity);
                                float           remainingTime   = (float)itemLogicObject.ProduceRemainingWorkload / ConfigInterface.Instance.SystemConfig.ProduceItemEfficiency;
                                float           progress        = (itemLogicObject.ProduceTotalWorkload - itemLogicObject.ProduceRemainingWorkload) / (float)itemLogicObject.ProduceTotalWorkload;
                                pb.Value.SetProgressBar(progress, remainingTime, true, ClientSystemConstants.Spell_ICON_COMMON_DICTIONARY[itemIdentity.itemType]);
                                order++;
                            }
                            else
                            {
                                pb.Value.gameObject.SetActive(false);
                            }
                        }

                        break;

                    case 2:    //2 = UpgradeArmy
                        if (this.BuildingLogicData.ArmyUpgrade.HasValue)
                        {
                            if (this.BuildingLogicData.IsArmyProduceBlock && !this.BuildingBehavior.IsClick)
                            {
                                order++;
                            }
                            pb.Value.gameObject.SetActive(true);
                            pb.Value.SetProgressPosition(order);
                            float remainingTime = this.BuildingLogicData.ArmyUpgradeRemainingTime;    // (float)this.BuildingLogicData.ArmyUpgradeRemainWorkload / this.BuildingLogicData.ArmyUpgradeEfficiency;
                            float progress      = (this.BuildingLogicData.ArmyUpgradeTotalWorkload - this.BuildingLogicData.ArmyUpgradeRemainWorkload) / (float)this.BuildingLogicData.ArmyUpgradeTotalWorkload;
                            pb.Value.SetProgressBar(progress, remainingTime, true, ClientSystemConstants.ARMY_UPGRADE_ICON_COMMON_DICTIONARY[this.BuildingLogicData.ArmyUpgrade.Value]);
                            order++;
                        }
                        else
                        {
                            pb.Value.gameObject.SetActive(false);
                        }
                        break;

                    case 3:    //ProduceArmy
                        if (this.BuildingLogicData.ArmyProducts != null && !this.BuildingLogicData.IsArmyProduceBlock)
                        {
                            if (this.BuildingLogicData.ArmyProducts.Count > 0)
                            {
                                pb.Value.gameObject.SetActive(true);
                                pb.Value.SetProgressPosition(order);
                                ArmyIdentity  armyIdentity  = this.BuildingLogicData.ArmyProducts[0].Value[0];
                                ArmyLogicData armyLogicData = LogicController.Instance.GetArmyObjectData(armyIdentity);
                                float         remainingTime = (float)armyLogicData.ProduceRemainingWorkload / ConfigInterface.Instance.SystemConfig.ProduceArmyEfficiency;

                                float progress = (armyLogicData.ProduceTotalWorkload - armyLogicData.ProduceRemainingWorkload) / (float)armyLogicData.ProduceTotalWorkload;
                                pb.Value.SetProgressBar(progress, remainingTime, true, ClientSystemConstants.ARMY_ICON_COMMON_DICTIONARY[armyIdentity.armyType]);
                                order++;
                            }
                            else
                            {
                                pb.Value.gameObject.SetActive(false);
                            }
                        }
                        else
                        {
                            pb.Value.gameObject.SetActive(false);
                        }

                        break;
                    }
                }
            }
        }
    }
Example #27
0
 internal static void Load(ItemIdentity identity, IItemFactory clientFactory)
 {
     factories[(int)identity] = clientFactory;
 }
Example #28
0
 internal static IItemFactory Get(ItemIdentity identity)
 {
     return(factories[(int)identity]);
 }
 public ItemUpdatedEvent()
 {
     Id = ItemIdentity.Default_Id;
 }
 public ServerItemFactory(ItemIdentity identity)
 {
     this.identity = identity;
 }
 public ItemUpdatedEvent(ItemIdentity id)
 {
     Id = id;
 }
 protected abstract IItemFactory GetItemFactory(ItemIdentity identity);
Example #33
0
 public FriendItemParameter GetItem(ItemIdentity id)
 {
     return(this.m_ItemObjects[id.itemType][id.itemNO]);
 }