public static SpaceshipRig RigForBattle(int playerId, int battleId) { List <int> rigIdsInBattles = new List <int>(); var battles = Battle.BattlesForPlayer(playerId, true); foreach (var battle in battles) { rigIdsInBattles.Add(battle.RigId); } BattleSceneType sceneType = BattleSceneType.SceneById(battleId); List <SpaceshipRig> rigList = PlayerRigs(playerId); foreach (var rig in rigList) { if (rig.ForBattleId == battleId) { return(rig); } if (sceneType.AssembleShip == 1) { if (!rigIdsInBattles.Contains(rig.Id)) { return(rig); } } } return(null); }
//Public Methods public void Init(int turnTime, long[] charOrder, PartyInfo[] partyInf, BattleSceneType battleSceneType, bool bot = false, float bot_ai = 1f) { DivineDebug.Log("Initing battle info."); isBot = bot; botPower = bot_ai; partyInfoes = partyInf; this.turnTime = turnTime; this.battleSceneType = battleSceneType; charactersTurnOrder_id = charOrder; }
/// <summary> /// Когда надо продолжить сражение /// </summary> /// <param name="battle"></param> public BattleScene(Battle battle) { SceneType = BattleSceneType.SceneById(battle.BattleSceneTypeId); CycleToComplete = SceneType.CycleToComplete; //Starting with 5 cycles and then add some more Cycles = new List <Cycle>(); for (int i = 1; i <= 20; i++) { Cycle curCycle = new Cycle(SceneType, i, battle.MaxOpenedCycle, battle.MaxOpenedStage); Cycles.Add(curCycle); } }
public BattleScene(BattleSceneType stype) { SceneType = stype; CycleToComplete = stype.CycleToComplete; //Starting with 5 cycles and then add some more Cycles = new List <Cycle>(); for (int i = 1; i <= 100; i++) { Cycle curCycle = new Cycle(stype, i, 1, 1); Cycles.Add(curCycle); } }
public BattleScene SelectBattleScene(BattleSceneType battleType) { if (_currentBattleScene != null) { _currentBattleScene.FinishIt(); } if (_battleSceneDic.Count == 0) { AddBattleScenes(); } _currentBattleScene = _battleSceneDic[battleType]; _currentBattleScene.StartIt(_isTablet); return(_currentBattleScene); }
public HttpResponseMessage ContinueBattle(int battleSceneId) { string steamId = User.Identity.Name; int playerId = PlayerDataSql.PlayerId(steamId); Battle battle = Battle.BattleByTypeId(playerId, battleSceneId); BattleScene tBattle = new BattleScene(BattleSceneType.SceneById(battleSceneId)); battle.battleScene = new UnityBattleScene(tBattle); battle.Rig = SpaceshipRig.RigById(battle.RigId); string serializedElement = JsonConvert.SerializeObject(battle); serializedElement = CommonFunctions.Compress(serializedElement); var response = new HttpResponseMessage(HttpStatusCode.OK); response.Content = new StringContent(serializedElement); return(response); }
//Public Methods public void Init(List <BtlCtrlCharacter> playerCharacters, List <BtlCtrlCharacter> aiCharacters, string playerName, string aiName, List <long> turns, BattleControllerType type, int turnTime = 0, BattleSceneType sceneType = BattleSceneType.Tutorial_Hell) { _parties = new BtlCtrlParty[2]; _parties[0] = new BtlCtrlParty(); _parties[0].Init(playerCharacters, TeamTypes.Player, playerName); _parties[1] = new BtlCtrlParty(); _parties[1].Init(aiCharacters, TeamTypes.Enemy, aiName); ListenToPartiesAndCharactersEvents(); _turnOrders = turns; _turnTime = turnTime; _type = type; _sceneType = sceneType; _currentState = States.WaitToStartFight; _currentTurnIndex = -1; _currentActionsStack = new Stack <ActionData>(); _currentActiveSpells = new List <BtlCtrlSpell>(); _externalLogic = null; SetExternalLogic(); _secretController = new BtlCtrlSecretController(); _secretController.Event_ActionGenerated += OnActionGenerated; _fakeServer = FakeServer.instance; _fakeServer.Event_OnMove += OnMove; _fakeServer.Event_OnReadyCome += OnReadyCome; }
/// <summary> /// Запуск нового экземпляра сражения /// </summary> public static Battle CreateBattle(int playerId, int battleSceneId, int rigId, bool forceCreate) { List <Battle> playerBattles = BattlesForPlayer(playerId, true); Battle curBattle = new Battle(); curBattle.PlayerId = playerId; curBattle.Ongoing = 1; curBattle.BattleSceneTypeId = battleSceneId; curBattle.RigId = rigId; curBattle.DateStart = DateTime.Now; curBattle.Successfull = 0; curBattle.CurrentCycle = 1; curBattle.CurrentStage = 1; curBattle.MaxOpenedCycle = 1; curBattle.MaxOpenedStage = 1; curBattle.ShipExperience = 0; curBattle.ShipOpenedSkills = ""; BattleScene tBattle = new BattleScene(BattleSceneType.SceneById(curBattle.BattleSceneTypeId)); curBattle.battleScene = new UnityBattleScene(tBattle); curBattle.GainedResources = new PlayerResources(); curBattle.SaveData(); return(curBattle); }
/// <summary> /// Отключено, потому что вся необходимая информация должна быть упакована в объект конкретной боевой сцены /// </summary> private void LoadBattleSceneTypes() { battleSceneTypes = BattleSceneType.SceneList(); }
public Cycle(BattleSceneType stype, int cycleNumber, int maxOpenedCycle, int maxOpenedStage) { Random rnd = new Random(); crList = new List <ResourceInCycle>(); if (cycleNumber >= maxOpenedCycle) { foreach (BattleSceneTypeResource res in stype.resources) { ResourceInCycle curRc = new ResourceInCycle(res, cycleNumber); if (curRc.CanBeUsed) { crList.Add(curRc); } } } Stages = new List <Stage>(); Number = cycleNumber; foreach (var enemy in stype.enemies) { if (enemy.CycleFrom <= Number && enemy.CycleTo >= Number) { bool enemyLoaded = false; if (Stages.Count > 0) { foreach (var stage in Stages) { bool processResources = false; if (cycleNumber >= maxOpenedCycle) { processResources = true; } else if (cycleNumber == maxOpenedCycle && stage.StageNumber >= maxOpenedStage) { processResources = true; } if (stage.StageNumber == enemy.StageNumber) { stage.AddEnemy(enemy, processResources); enemyLoaded = true; break; } } } if (!enemyLoaded) { bool processResources = false; if (cycleNumber >= maxOpenedCycle) { processResources = true; } else if (cycleNumber == maxOpenedCycle && enemy.StageNumber >= maxOpenedStage) { processResources = true; } Stages.Add(new Stage(enemy, cycleNumber, crList, stype, processResources)); } } } foreach (var res in crList) { res.ProcessGuaranteedAmount(); } }
public Stage(BattleSceneTypeEnemy enemy, int cycleNumber, List <Cycle.ResourceInCycle> cr, BattleSceneType stype, bool processResources) { Enemy = new List <StageEnemy>(); StageNumber = enemy.StageNumber; CycleNumber = cycleNumber; Cr = cr; AddEnemy(enemy, processResources); }