Exemplo n.º 1
0
    public void DropMercenary(MercenaryIdentity id)
    {
        MercenaryLogicData mercenaryData = LogicController.Instance.GetMercenaryData(id);

        this.m_Buildings[mercenaryData.CampID.buildingType][mercenaryData.CampID.buildingNO].DropMercenary(id);
        this.AssignArmies();
    }
Exemplo n.º 2
0
 public void DropMercenary(MercenaryIdentity id)
 {
     this.m_Mercenaries[id.mercenaryType].Remove(id.mercenaryNO);
     if (this.m_Mercenaries[id.mercenaryType].Count == 0)
     {
         this.m_Mercenaries.Remove(id.mercenaryType);
     }
 }
Exemplo n.º 3
0
    public void HireMercenary(BuildingIdentity tavernID, MercenaryType type)
    {
        int no = this.m_PlayerModule.Data.GetMercenaryStartNO(type);
        MercenaryIdentity mercenaryID = new MercenaryIdentity(type, no);

        this.m_PlayerModule.HireMercenary(type);
        BuildingIdentity campID = this.m_BuildingModule.HireMercenary(mercenaryID, tavernID);

        this.m_MercenaryModule.HireMercenary(mercenaryID, campID);

        this.m_TaskModule.OnHireMercenary(type);
    }
Exemplo n.º 4
0
 public void DropMercenary(MercenaryIdentity mercenary)
 {
     foreach (MercenaryIdentity mercenaryID in this.m_Data.AvailableMercenary)
     {
         if (mercenary == mercenaryID)
         {
             this.m_Data.AvailableMercenary.Remove(mercenary);
             this.m_AlreadyArmyCapacity -= ConfigInterface.Instance.MercenaryConfigHelper.GetMercenaryData(mercenary.mercenaryType).CapcityCost;
             break;
         }
     }
 }
Exemplo n.º 5
0
    public void HireMercenary(MercenaryIdentity id, BuildingIdentity campID)
    {
        MercenaryData data = new MercenaryData();

        data.CampID     = campID;
        data.ConfigData = ConfigInterface.Instance.MercenaryConfigHelper.GetMercenaryData(id.mercenaryType);
        MercenaryLogicData logicData = new MercenaryLogicData(data);

        if (!this.m_Mercenaries.ContainsKey(id.mercenaryType))
        {
            this.m_Mercenaries.Add(id.mercenaryType, new Dictionary <int, MercenaryLogicData>());
        }
        this.m_Mercenaries[id.mercenaryType].Add(id.mercenaryNO, logicData);
    }
Exemplo n.º 6
0
    public void AddMercenaryToCamp(MercenaryIdentity mercenary, BuildingIdentity tavernID)
    {
        if (this.m_Data.AvailableMercenary == null)
        {
            this.m_Data.AvailableMercenary = new List <MercenaryIdentity>();
        }
        this.m_Data.AvailableMercenary.Add(mercenary);

        this.m_AlreadyArmyCapacity += ConfigInterface.Instance.MercenaryConfigHelper.GetMercenaryData(mercenary.mercenaryType).CapcityCost;
        if (Application.loadedLevelName == ClientStringConstants.BUILDING_SCENE_LEVEL_NAME)
        {
            BuildingSceneDirector.Instance.SendMercenaryToCamp(mercenary.mercenaryType,
                                                               this.m_BuildingLogicData, LogicController.Instance.GetBuildingObject(tavernID));
            AudioController.Play("TrainingFinished");
        }
    }
Exemplo n.º 7
0
    public BuildingIdentity HireMercenary(MercenaryIdentity id, BuildingIdentity tavernID)
    {
        BuildingIdentity campID = this.m_ArmyCampManager.FindMercenaryCamp(id.mercenaryType).Value;

        this.m_Buildings[tavernID.buildingType][tavernID.buildingNO].HireMercenary(id.mercenaryType);
        this.m_Buildings[campID.buildingType][campID.buildingNO].AddMercenaryToCamp(id, tavernID);

        HireMercenaryRequestParameter request = new HireMercenaryRequestParameter();

        request.CampType      = campID.buildingType;
        request.CampNO        = campID.buildingNO;
        request.MercenaryType = id.mercenaryType;
        request.MercenaryNO   = id.mercenaryNO;
        request.TavernNO      = tavernID.buildingNO;
        request.OperateTick   = LogicTimer.Instance.GetServerTick();
        CommunicationUtility.Instance.HireMercenary(request);

        return(campID);
    }
Exemplo n.º 8
0
 public MercenaryLogicData GetMercenaryData(MercenaryIdentity id)
 {
     return(this.m_Mercenaries[id.mercenaryType][id.mercenaryNO]);
 }
Exemplo n.º 9
0
    public void Construct(Vector2 position)
    {
        TilePosition mousePosition = PositionConvertor.GetBuildingTileIndexFromScreenPosition(position);

        mousePosition.Row    = Mathf.Clamp(mousePosition.Row, 0, ClientSystemConstants.BUILDING_TILE_MAP_SIZE.height - 1);
        mousePosition.Column = Mathf.Clamp(mousePosition.Column, 0, ClientSystemConstants.BUILDING_TILE_MAP_SIZE.width - 1);

        UICheckbox check = null;

        UICheckbox[] checks = this.m_SelectionGroup.GetComponentsInChildren <UICheckbox>();
        foreach (UICheckbox c in checks)
        {
            if (c.isChecked)
            {
                check = c;
                break;
            }
        }

        PropsButtonInformation propsInfo = check.transform.parent.GetComponent <PropsButtonInformation>();

        bool isUseProps = propsInfo != null &&
                          !(ConfigInterface.Instance.PropsConfigHelper.GetPropsData(propsInfo.Type).FunctionConfigData is PropsArmyConfigData) &&
                          !(ConfigInterface.Instance.PropsConfigHelper.GetPropsData(propsInfo.Type).FunctionConfigData is PropsMercenaryConfigData);



        bool isValidPosition = true;

        if (mousePosition.IsEdgeBuildingTilePosition())
        {
            isValidPosition = true;
        }
        else if (!mousePosition.IsValidBuildingTilePosition())
        {
            this.m_GridFactory.DisplayGrid();
            isValidPosition = false;
        }
        else if (BattleMapData.Instance.CharacterForbiddenArray[mousePosition.Row, mousePosition.Column] &&
                 !isUseProps)
        {
            this.m_GridFactory.DisplayGrid();
            isValidPosition = false;
        }

        if (isValidPosition && (BattleDirector.Instance == null || !BattleDirector.Instance.IsBattleFinished))
        {
            ArmyButtonInformation      armyInfo      = check.transform.parent.GetComponent <ArmyButtonInformation>();
            MercenaryButtonInformation mercenaryInfo = check.transform.parent.GetComponent <MercenaryButtonInformation>();

            if (armyInfo != null)
            {
                if (armyInfo.Dropable)
                {
                    Vector3 worldPosition = CameraManager.Instance.MainCamera.ScreenToWorldPoint(new Vector3(position.x, position.y, 0));
                    worldPosition = PositionConvertor.ClampWorldPositionOfBuildingTile(worldPosition);

                    ArmyIdentity id = armyInfo.DropArmy();
                    this.m_ConstructArmyList.Add(new ConstructArmyCommand()
                    {
                        Position = worldPosition,
                        Identity = id, Level = armyInfo.ArmyLevel
                    });
                }
                else
                {
                    UIErrorMessage.Instance.ErrorMessage(ClientStringConstants.NO_ARMY_TO_DROP_WARNING_MESSAGE);
                }
            }
            else if (mercenaryInfo != null)
            {
                if (mercenaryInfo.Dropable)
                {
                    Vector3 worldPosition = CameraManager.Instance.MainCamera.ScreenToWorldPoint(new Vector3(position.x, position.y, 0));
                    worldPosition = PositionConvertor.ClampWorldPositionOfBuildingTile(worldPosition);

                    MercenaryIdentity id = mercenaryInfo.DropArmy();
                    this.m_ConstructMercenaryList.Add(new UserCommand <MercenaryIdentity>()
                    {
                        Position = worldPosition,
                        Identity = id
                    });
                }
                else
                {
                    UIErrorMessage.Instance.ErrorMessage(ClientStringConstants.NO_ARMY_TO_DROP_WARNING_MESSAGE);
                }
            }
            else if (propsInfo != null)
            {
                if (propsInfo.Dropable)
                {
                    Vector3 worldPosition = CameraManager.Instance.MainCamera.ScreenToWorldPoint(new Vector3(position.x, position.y, 0));
                    worldPosition = PositionConvertor.ClampWorldPositionOfBuildingTile(worldPosition);

                    int no = propsInfo.DropArmy();
                    this.m_UsePropsList.Add(new UsePropsCommand()
                    {
                        Position = worldPosition,
                        Identity = no, PropsType = propsInfo.Type
                    });
                }
                else
                {
                    UIErrorMessage.Instance.ErrorMessage(ClientStringConstants.NO_PROPS_TO_DROP_WARNING_MESSAGE);
                }
            }
        }
        else
        {
            if (isUseProps)
            {
                UIErrorMessage.Instance.ErrorMessage(ClientStringConstants.CAN_NOT_USE_PROPS_WARNING_MESSAGE);
            }
            else
            {
                UIErrorMessage.Instance.ErrorMessage(ClientStringConstants.CAN_NOT_DROP_ARMY_WARNING_MESSAGE);
            }
        }
    }
Exemplo n.º 10
0
 public void DropMercenary(MercenaryIdentity id)
 {
     this.m_BuildingModule.DropMercenary(id);
     this.m_MercenaryModule.DropMercenary(id);
 }
Exemplo n.º 11
0
 public MercenaryLogicData GetMercenaryData(MercenaryIdentity id)
 {
     return(this.m_MercenaryModule.GetMercenaryData(id));
 }