public void DropMercenary(MercenaryIdentity id) { MercenaryLogicData mercenaryData = LogicController.Instance.GetMercenaryData(id); this.m_Buildings[mercenaryData.CampID.buildingType][mercenaryData.CampID.buildingNO].DropMercenary(id); this.AssignArmies(); }
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); } }
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); }
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; } } }
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); }
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"); } }
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); }
public MercenaryLogicData GetMercenaryData(MercenaryIdentity id) { return(this.m_Mercenaries[id.mercenaryType][id.mercenaryNO]); }
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); } } }
public void DropMercenary(MercenaryIdentity id) { this.m_BuildingModule.DropMercenary(id); this.m_MercenaryModule.DropMercenary(id); }
public MercenaryLogicData GetMercenaryData(MercenaryIdentity id) { return(this.m_MercenaryModule.GetMercenaryData(id)); }