Example #1
0
        public void ParseEntry(String[] raw)
        {
            Comment = CsvParser.String(raw[0]);
            Id      = CsvParser.Int32(raw[1]);

            BattleStatus result = 0;

            for (Int32 index = 2; index < raw.Length; index++)
            {
                String value = raw[index];
                if (String.IsNullOrEmpty(value))
                {
                    continue;
                }

                Int32 number = (Int32)CsvParser.EnumValue <BattleStatusNumber>(value);
                if (number == 0)
                {
                    continue;
                }

                result |= (BattleStatus)(1 << checked (number - 1));
            }
            Value = result;
        }
Example #2
0
        /// <summary>
        /// Used interally to see if the HP/SP doesn't overlap their max boundaries.
        /// </summary>
        /// <param name="character"></param>
        public static void CharacterCheckCapacities(Character character)
        {
            BattleStatus status = character._status;

            status.CurrentSp = (status.CurrentSp > (int)status.MaxSP) ? (ushort)status.MaxSP : status.CurrentSp;
            status.CurrentHp = (status.CurrentHp > (int)status.MaxHP) ? (ushort)status.MaxHP : status.CurrentHp;
        }
Example #3
0
        public Single RateTarget()
        {
            if (!_v.Target.CanBeRevived())
            {
                return(0);
            }

            if (_v.Target.IsZombie)
            {
                _v.MagicAccuracy();

                Single hitRate = BattleScriptAccuracyEstimate.RatePlayerAttackHit(_v.Context.HitRate);
                Single evaRate = BattleScriptAccuracyEstimate.RatePlayerAttackEvade(_v.Context.Evade);

                Single result = BattleScriptStatusEstimate.RateStatus(BattleStatus.Death) * hitRate * evaRate;
                if (!_v.Target.IsPlayer)
                {
                    result *= -1;
                }
                return(result);
            }

            if (!_v.Target.IsPlayer)
            {
                return(0);
            }

            BattleStatus playerStatus  = _v.Target.CurrentStatus;
            BattleStatus removeStatus  = _v.Command.AbilityStatus;
            BattleStatus removedStatus = playerStatus & removeStatus;
            Int32        rating        = BattleScriptStatusEstimate.RateStatuses(removedStatus);

            return(-1 * rating);
        }
Example #4
0
    public void BeginBattle(List <BattlePlayerInfo> players)
    {
        _players        = players;
        _increaseID     = 0;
        _continueKill   = 0;
        _isContinueKill = false;
        _allUnits       = new List <UnitInfo>();
        MainUI.Instance.ShowPanel <BattlePanel>();
        _battleProgress = new List <BattleProgressData>();
        GeneratePlayer();
        _battleProgress.Add(new BattleProgressData()
        {
            Uid = _player.UnitInfo.Uid
        });

        for (int i = 0; i < players.Count; i++)
        {
            var player = players[i];
            Debug.Log("AI:" + player.Uid);
            GenerateAI(_aiPlayers[i], player.NickName, player.Uid, player.Level, 0);

            _battleProgress.Add(new BattleProgressData()
            {
                Uid = player.Uid, Index = (10 - i)
            });
        }

        _foodMgr = GetComponent <GenerateFood>();
        FoodMgr.GenerateFoods();
        _status      = BattleStatus.Game;
        _elapsedTime = 0;
    }
Example #5
0
	void Awake () {
		GameManager.getGameManager().addResetter(this);

		r_HP = HP;
		r_FireRate = FireRate;
		r_Damage = Damage;
		r_Ammo = Ammo;
		r_Speed = Speed;
		
		r_Attdist = Attdist; // Angriffsdistanz
		r_Sightdist = Sightdist; // Sichtweite
		
		r_Target = Target;
		
		r_steeringtype = steeringtype;
		r_BulletPrefab = BulletPrefab;
		
		r_lastFireTime = lastFireTime;
		
		r_myBattleStatus = myBattleStatus;
		r_pastBattleStatus = pastBattleStatus;

		r_position = this.rigidbody2D.position;
		r_dreh = this.rigidbody2D.rotation;
	}
Example #6
0
 void FixedUpdate()
 {
     if (battleStatus == BattleStatus.NO_BATTLE && mainRpgcontroller.mainRpgStatus == MainRpgStatus.BATTLE)
     {
         battleStatus = BattleStatus.START;
     }
 }
Example #7
0
 public TransmissionReceivedArgs(Point target, int shotId, BattleStatus shotResultStatus, Color team)
 {
     Target           = target;
     ShotId           = shotId;
     ShotResultStatus = shotResultStatus;
     Team             = team;
 }
Example #8
0
 private void onUseCoinsToContinue(int coinsToContinue)
 {
     PlayerInfo.Coins -= coinsToContinue;
     Player.Health.SetAmount(Player.Health.MaxAmount);
     Timer.Initialize(BattleInfo.BattleTime);
     _battleStatus = BattleStatus.Running;
 }
Example #9
0
        public Battle()
        {
            if (story == null)
            {
                this.story = App.Story;
                this.hero = story.Hero;
                currentStatus = null;
            }

            InitializeComponent();

            buttons = new Dictionary<Type, Button>()
            {
                {typeof (Rock), RockButton},
                {typeof (Paper), PaperButton},
                {typeof (Scissors), ScissorsButton},
            };

            foreach (var button in buttons.Values)
            {
                button.Visibility = Visibility.Collapsed;
            }

            returnToNavi.Visibility = Visibility.Collapsed;

            RunBattle();
        }
Example #10
0
        public void PrintBattleStatus(BattleStatus status, BattleTypers typers)
        {
            _output.WriteLine(new string('-', Width));
            _output.WriteLine();

            if (typers.SelectedPlayerId == status.Player.PlayerId)
            {
                Console.ForegroundColor = ConsoleColor.Green;
            }

            _output.Write($"{(status.Player.IsVotedToStop ? "(stop) " : string.Empty)}{status.Player.Name}   [ {status.Player.Hp} / {status.Player.MaxHp} ]   ");
            Console.ForegroundColor = ConsoleColor.Gray;

            _output.WriteLine(typers.GetPlayerTyper(status.Player.PlayerId));
            _output.WriteLine();

            foreach (var player in status.BattleNeighbors)
            {
                if (typers.SelectedPlayerId == player.PlayerId)
                {
                    Console.ForegroundColor = ConsoleColor.Green;
                }

                _output.Write($"{(player.IsVotedToStop ? "(stop) " : string.Empty)}{player.Name}   [ {player.Hp} / {player.MaxHp} ]   ");
                Console.ForegroundColor = ConsoleColor.Gray;

                _output.WriteLine(typers.GetPlayerTyper(player.PlayerId));
                _output.WriteLine();
            }

            _output.WriteLine(new string('-', Width));
            _output.WriteLine();

            foreach (var skillId in status.SkillIds)
            {
                var skill = Data.Data.GetSkill(skillId);

                if (typers.SelectedSkillId == skillId)
                {
                    Console.ForegroundColor = ConsoleColor.Green;
                }

                _output.Write($"{skill.Name}   ");

                if (typers.SelectedSkillId == skillId)
                {
                    Console.ForegroundColor = ConsoleColor.Gray;
                }

                _output.Write(typers.GetSkillTyper(skill.SkillId));
                _output.WriteLine();
                _output.WriteLine();
            }

            _output.WriteLine(new string('-', Width));

            _output.WriteLine();
            _output.Write("Stop - ");
            _output.WriteLine(typers.StopTyper);
        }
Example #11
0
 /// <summary>
 /// 设置状态状态。
 /// </summary>
 /// <param name="Status"></param>
 public static void SetBattleStatus(BattleStatus Status, object Param = null)
 {
     if (g_BattleStatus != Status)
     {
         g_BattleStatus = Status;
         if (Status == BattleStatus.Init)
         {
             Init();
         }
         else if (Status == BattleStatus.Ready)
         {
             Ready();
         }
         else if (Status == BattleStatus.RoundStart)
         {
             Node.StartCoroutine(RoundStart(1.0f));
         }
         else if (Status == BattleStatus.Round_FireBall)
         {
             RoundFireBall(Param);
         }
         else if (Status == BattleStatus.RoundFinish)
         {
             RoundFinish();
         }
         else if (Status == BattleStatus.RoundInterval)
         {
             Node.StartCoroutine(RoundInterval(3.0f));
         }
     }
 }
Example #12
0
 public void OnGet()
 {
     BattleStatus.PrepareBattle(_ctx);
     Hero      = BattleStatus.Hero;
     Enemies   = BattleStatus.Enemies;
     BattleLog = BattleStatus.BattleLog;
 }
Example #13
0
        private void TurnEnded()
        {
            if (WinCheck())
            {
                return;
            }

            // Verified: Effects before Reflect/LightScreen/LuckyChant
            DoTurnEndedEffects();

            if (WinCheck())
            {
                return;
            }

            // Reflect/Light Screen/Lucky Chant/Trick Room are removed in the order they were added, but who cares
            foreach (PBETeam team in Teams)
            {
                if (team.TeamStatus.HasFlag(PBETeamStatus.Reflect))
                {
                    team.ReflectCount--;
                    if (team.ReflectCount == 0)
                    {
                        team.TeamStatus &= ~PBETeamStatus.Reflect;
                        BroadcastTeamStatus(team, PBETeamStatus.Reflect, PBETeamStatusAction.Ended);
                    }
                }
                if (team.TeamStatus.HasFlag(PBETeamStatus.LightScreen))
                {
                    team.LightScreenCount--;
                    if (team.LightScreenCount == 0)
                    {
                        team.TeamStatus &= ~PBETeamStatus.LightScreen;
                        BroadcastTeamStatus(team, PBETeamStatus.LightScreen, PBETeamStatusAction.Ended);
                    }
                }
                if (team.TeamStatus.HasFlag(PBETeamStatus.LuckyChant))
                {
                    team.LuckyChantCount--;
                    if (team.LuckyChantCount == 0)
                    {
                        team.TeamStatus &= ~PBETeamStatus.LuckyChant;
                        BroadcastTeamStatus(team, PBETeamStatus.LuckyChant, PBETeamStatusAction.Ended);
                    }
                }
            }

            // Trick Room
            if (BattleStatus.HasFlag(PBEBattleStatus.TrickRoom))
            {
                TrickRoomCount--;
                if (TrickRoomCount == 0)
                {
                    BattleStatus &= ~PBEBattleStatus.TrickRoom;
                    BroadcastBattleStatus(PBEBattleStatus.TrickRoom, PBEBattleStatusAction.Ended);
                }
            }

            SwitchesOrActions();
        }
Example #14
0
    //BattleStatusの更新
    void OnChangedStatus(BattleStatus newStatus)
    {
        switch (newStatus)
        {
        case BattleStatus.WAIT:
            ScoreManager.Instance.Init();
            BattleUI.Instance.SpawnAll();
            timeManager.InitTimer();
            StartCoroutine(wait());
            break;

        case BattleStatus.START:
            timeManager.StartTimer();
            PlayerInput.Instance.canInput = true;
            break;

        case BattleStatus.END:
            timeManager.EndCount();
            BattleUI.Instance.Finish();
            PlayerInput.Instance.canInput = false;
            ScoreManager.Instance.DecidedScore();
            Debug.Log("end");
            StartCoroutine(goResult());
            break;
        }
    }
        public void EndBattle(BattleResult result)
        {
            battleStatus = BattleStatus.Finish;

            if (battleTask != null)
            {
                battleTask.Stop();
                battleTask = null;
            }

            if (result == BattleResult.Win)
            {
                while (monsters.Count > 0)
                {
                    monsters[0].Dispose();
                }

                monsters.Clear();

                while (missiles.Count > 0)
                {
                    missiles[0].Dispose();
                }

                missiles.Clear();

                EventBox.Send(CustomEvent.TROPHY_UPDATE, new KeyValuePair <TrophyType, float>(TrophyType.DungeonClear, dungeon.id));

                dungeon = null;
            }

            LayerManager.GetInstance().AddPopUpView <DungeonResultWindow>(result);
        }
 public bool CanAct(out BattleStatus battleStatus)
 {
     foreach (KeyValuePair <int, BattleStatus> item in StatusDic)
     {
         if (item.Value is Sleeping)
         {
             battleStatus = item.Value;
             return(false);
         }
         else if (item.Value is Paralysis)
         {
             int random = Random.Range(0, 100);
             if (random < ((Paralysis)item.Value).Probability)
             {
                 battleStatus = item.Value;
                 return(false);
             }
             else
             {
                 battleStatus = null;
                 return(true);
             }
         }
     }
     battleStatus = null;
     return(true);
 }
Example #17
0
    public void BackTurn()
    {
        gridGenerator.DestroyTiles(DestroyOption.all, true, true);

        if (index > 0)
        {
            index--;
        }
        else
        {
            index = battleStatusLastIndex;
        }

        if (currentTurnIndex == 1 && (status == BattleStatus.Combat))
        {
            currentTurnIndex--;
            if (turnOrder[currentTurnIndex].character.relation != turnOrder[currentTurnIndex + 1].character.relation)
            {
                SwitchRelation();
            }
        }
        else if (status == BattleStatus.Combat)
        {
            SetOrder();
            currentTurnIndex = turnOrder.Count - 1;
            if (turnOrder[currentTurnIndex].character.relation != lastTurn.character.relation)
            {
                SwitchRelation();
            }
        }

        status = (BattleStatus)index;
    }
Example #18
0
        public static UInt16 GetStatusBtlID(UInt32 list_no, BattleStatus status)
        {
            UInt16 num = 0;

            for (BTL_DATA next = FF9StateSystem.Battle.FF9Battle.btl_list.next; next != null; next = next.next)
            {
                if ((status == 0u || btl_stat.CheckStatus(next, status)) && next.bi.target != 0)
                {
                    switch (list_no)
                    {
                    case 0u:
                        if (next.bi.player != 0)
                        {
                            num = (UInt16)(num | next.btl_id);
                        }
                        break;

                    case 1u:
                        if (next.bi.player == 0)
                        {
                            num = (UInt16)(num | next.btl_id);
                        }
                        break;

                    case 2u:
                        num = (UInt16)(num | next.btl_id);
                        break;
                    }
                }
            }
            return(num);
        }
Example #19
0
 private static void ActiveTimeStatus(BTL_DATA btl)
 {
     for (Int32 index = 0; index < 16; ++index)
     {
         BattleStatus status = (BattleStatus)(65536 << index);
         if ((btl.stat.cur & Status.STATUS_MASK & status) != 0 && (btl.stat.cnt.conti[index] -= btl.cur.at_coef) < 0)
         {
             if (((Int32)status & Int32.MinValue) != 0)
             {
                 if (!btl_cmd.CheckUsingCommand(btl.cmd[2]) && (Int32)AlterStatus(btl, BattleStatus.Petrify) != 2)
                 {
                     RemoveStatus(btl, BattleStatus.GradualPetrify);
                     btl.fig_info |= 32;
                     btl2d.Btl2dReq(btl);
                 }
             }
             else if ((status & BattleStatus.Doom) != 0)
             {
                 AlterStatus(btl, BattleStatus.Death);
                 btl2d.Btl2dReq(btl);
             }
             else
             {
                 RemoveStatus(btl, status);
             }
         }
     }
 }
Example #20
0
    public void InitializaBattle()
    {
        CanvasFade.StartFadeOut(null);

        BattleInfo = BattleInfoFactory.CreateBattleInfo(GameData.BattleToLoad);
        if (BattleInfo.BattleMusic != null)
        {
            SoundManager.instance.PlayMusic(BattleInfo.BattleMusic);
        }

        InitializeComboStone();

        InitializePlayer();

        InitializeBoss();

        InitializeTimer();

        initializeKeyboard();

        initializePowerUps();

        InitializePopUps();

        _battleStatus = BattleStatus.Running;
    }
        public void Perform()
        {
            WeaponItem weaponNumber = _v.Caster.Weapon;

            switch (weaponNumber)
            {
            case WeaponItem.ButterflySword:
            case WeaponItem.TheOgre:
            case WeaponItem.Exploda:
            case WeaponItem.RuneTooth:
            case WeaponItem.AngelBless:
            case WeaponItem.Sargatanas:
            case WeaponItem.Masamune:
            case WeaponItem.TheTower:
            case WeaponItem.UltimaWeapon:
                break;

            default:
                _v.Context.Flags |= BattleCalcFlags.Miss;
                return;
            }

            BattleStatus status = _v.Caster.WeaponStatus;

            if ((status & BattleStatus.Death) == 0 || _v.Target.CheckUnsafetyOrGuard())
            {
                _v.Target.TryAlterStatuses(status, true);
            }
        }
        public Single RateTarget()
        {
            if (!_v.Target.CanBeRevived())
            {
                return(0);
            }

            if (_v.Target.IsZombie)
            {
                Single result = BattleScriptStatusEstimate.RateStatus(BattleStatus.Death) * 0.1f;
                if (!_v.Target.IsPlayer)
                {
                    result *= -1;
                }
                return(result);
            }

            if (!_v.Target.IsPlayer)
            {
                return(0);
            }

            BattleStatus playerStatus  = _v.Target.CurrentStatus;
            BattleStatus removeStatus  = _v.Command.ItemStatus;
            BattleStatus removedStatus = playerStatus & removeStatus;
            Int32        rating        = BattleScriptStatusEstimate.RateStatuses(removedStatus);

            return(-1 * rating);
        }
Example #23
0
    public void RemoveBtlSPSObj(BTL_DATA btl, BattleStatus status)
    {
        Int32 statusSPSIndex = this.GetStatusSPSIndex(status);
        Int32 objSpsIndex    = this.GetObjSpsIndex(btl, status);

        btl2d.STAT_ICON_TBL stat_ICON_TBL = btl2d.wStatIconTbl[statusSPSIndex];
        this.SetBtlStatus(objSpsIndex, -1, stat_ICON_TBL.Abr, (Int32)stat_ICON_TBL.Type);
    }
Example #24
0
    IEnumerator EnemyTurn()
    {
        Debug.Log("Enemy is taking turn");
        yield return(new WaitForSeconds(5f));

        currentStatus = BattleStatus.PlayerTurn;
        PlayerTurn();
    }
Example #25
0
 public static void UpdateAbnormalStatus(BattleStatus status)
 {
     BattleAchievement.achievement.abnormal_status |= status;
     if ((BattleAchievement.achievement.abnormal_status & BattleStatus.Achievement) == BattleStatus.Achievement)
     {
         AchievementManager.ReportAchievement(AcheivementKey.AbnormalStatus, 1);
     }
 }
Example #26
0
 public void EndTurn()
 {
     if (currentStatus == BattleStatus.PlayerTurn)
     {
         currentStatus = BattleStatus.EnemyTurn;
         StartCoroutine(EnemyTurn());
     }
 }
Example #27
0
        // get from stream
        static public UInt32 get(mln.EndianStream rEs, out BattleStatus rOut)
        {
            UInt32 ret = 0;

            rEs.get(out ret);
            rOut = (BattleStatus)ret;
            return(4);
        }
Example #28
0
    public void AddBtlSPSObj(BattleUnit btl, BattleStatus status)
    {
        Int32 statusSPSIndex = this.GetStatusSPSIndex(status);
        Int32 objSpsIndex    = this.GetObjSpsIndex(btl.Data, status);

        btl2d.STAT_ICON_TBL stat_ICON_TBL = btl2d.wStatIconTbl[statusSPSIndex];
        this.SetBtlStatus(objSpsIndex, statusSPSIndex, stat_ICON_TBL.Abr, (Int32)stat_ICON_TBL.Type);
    }
    // 初始化战斗数据库
    private void initializeBattleObjects()
    {
        BattleSkill.InitializeBattleSkills();
        BattleStatus.InitializeBattleStatusList();

        BattleJob.InitializeBattleJobList();
        BattleActor.InitializeBattleActorList();
    }
Example #30
0
 public STAT_DATA(Byte priority, Byte opr_cnt, UInt16 conti_cnt, BattleStatus clear, BattleStatus invalid)
 {
     this.priority  = priority;
     this.opr_cnt   = opr_cnt;
     this.conti_cnt = conti_cnt;
     this.clear     = clear;
     this.invalid   = invalid;
 }
Example #31
0
 public void Awake()
 {
     roundNum     = 1;
     battleStatus = BattleStatus.BattleBegin;
     enemyName    = Data.Instance().EnemyName;
     BattleInit();
     //GameObject.Find("View").SetActive(true);
 }
Example #32
0
    public bool cast(Card card, EditedGridGenerator _gridGenerator, GameObject user, BattleStatus battleStatus, GetStats turn)
    {
        targets       = 0;
        gridGenerator = _gridGenerator;

        if (turnSystem.GetBattleStatus() != battleStatus && turnSystem.currentTurn != turn && turnSystem.currentTurn == cardSystem.Player.GetComponent <GetStats>())
        {
            if (turnSystem.currentTurn == player.GetComponent <GetStats>())
            {
                gridGenerator.DestroyTiles(DestroyOption.selectedTiles, true, true);
                Debug.Log("Its not the right stage to play a card");
            }

            return(false);
        }
        if (user.GetComponent <GetStats>().character.currentMana >= card.manaCost)
        {
            foreach (GameObject tile in gridGenerator.selectedTiles)
            {
                foreach (GameObject tile1 in gridGenerator.rangeTiles)
                {
                    //Debug.Log($"{tile.transform.position.x} == {tile1.transform.position.x} && {tile.transform.position.z} == {tile1.transform.position.z} ");
                    if (tile.transform.position.x == tile1.transform.position.x && tile.transform.position.z == tile1.transform.position.z)
                    {
                        parametersObjects.Add(user);
                        parametersObjects.Add(tile);
                        skillInfo.SetCardID(card);
                        user.GetComponent <GetStats>().lastcastedSkill = card;
                        this.SendMessage(card.skill.ToString(), parametersObjects);
                        targets++;

                        if (targets >= card.maxAmountOfTargets)
                        {
                            return(true);
                        }
                    }
                }
            }
            if (targets == 0)
            {
                if (turnSystem.GetBattleStatus() != BattleStatus.Move && turnSystem.currentTurn == cardSystem.Player.GetComponent <GetStats>())
                {
                    Debug.Log("Select valid targets");
                    gridGenerator.DestroyTiles(DestroyOption.all, true, true);
                }
                return(false);
            }
        }
        else
        {
            if (turnSystem.currentTurn == cardSystem.Player.GetComponent <GetStats>())
            {
                Debug.Log("You dont have enough mana for this ability");
            }
            return(false);
        }
        return(false);
    }
Example #33
0
        public Battle(BattleInfo info, SpriteFont font)
        {
            _BattleInfo = info;
            _BattleState = BattleStatus.Intro;
            _BattleHUD = new BattleHUD(this, font);

            //Initialize the Events.
            BattleStateChange += new BattleEventHandler(OnBattleStateChange);
            BattleStateChange(this);
        }
Example #34
0
        /// <summary>
        /// Lets the game respond to player input. Unlike the Update method,
        /// this will only be called when the gameplay screen is active.
        /// </summary>
        public override void HandleInput(InputState input)
        {
            //we will need a loop to handle input for each player
            PlayerIndex pi = new PlayerIndex();

            switch (CurrentStatus)
            {
                case BattleStatus.BattleOver:
                    {

                    if (input.IsMenuCancel(null, out pi))
                    {
                        //Greg
                        if (Players[0].mCurrentState == Player.PlayerState.Playing) Players[0].mCurrentState = Player.PlayerState.Paused;

                        ScreenManager.AddScreen(new PauseMenuScreen(ScreenManager), pi);

                    }
                    if (input.CurrentGamePadStates[(int)player1_index].IsButtonDown(Buttons.Start) && !input.LastGamePadStates[(int)player1_index].IsButtonDown(Buttons.Start))
             {
             ScreenManager.AddScreen(new PauseMenuScreen(ScreenManager), PlayerIndex.One);
             }

                    if (input.CurrentGamePadStates[(int)player2_index].IsButtonDown(Buttons.Start) && !input.LastGamePadStates[(int)player2_index].IsButtonDown(Buttons.Start))
             {

             ScreenManager.AddScreen(new PauseMenuScreen(ScreenManager), PlayerIndex.Two);

             }
                    }
                    break;
                case BattleStatus.Playing:

                    //if (input.IsMenuCancel(null, out pi))
                    //{
                    //    //Greg
                    //    if (Players[0].mCurrentState == Player.PlayerState.Playing) Players[0].mCurrentState = Player.PlayerState.Paused;

                    //    ScreenManager.AddScreen(new PauseMenuScreen(ScreenManager), pi);

                    //}
                    if (!input.CurrentGamePadStates[(int)player1_index].IsConnected || !input.CurrentGamePadStates[(int)player2_index].IsConnected)
                    {
                        Players[0].mCurrentState = Player.PlayerState.Paused;
                        Players[1].mCurrentState = Player.PlayerState.Paused;
                        ScreenManager.AddScreen(new PauseMenuScreen(ScreenManager), PlayerIndex.One);
                        CurrentStatus = BattleStatus.Paused;
            }
                    if (input.CurrentGamePadStates[(int)player1_index].IsButtonDown(Buttons.Start) && !input.LastGamePadStates[(int)player1_index].IsButtonDown(Buttons.Start) || input.CurrentGamePadStates[(int)player1_index].IsButtonDown(Buttons.Back))
                    {

                        Players[0].mCurrentState = Player.PlayerState.Paused;
                        Players[1].mCurrentState = Player.PlayerState.Paused;
                        ScreenManager.AddScreen(new PauseMenuScreen(ScreenManager), PlayerIndex.One);
                        CurrentStatus = BattleStatus.Paused;
                    }
                    if (input.CurrentGamePadStates[(int)player2_index].IsButtonDown(Buttons.Start) && !input.LastGamePadStates[(int)player2_index].IsButtonDown(Buttons.Start) || input.CurrentGamePadStates[(int)player2_index].IsButtonDown(Buttons.Back))
                    {
                        // CurrentStatus = BattleStatus.Paused;
                        Players[0].mCurrentState = Player.PlayerState.Paused;
                        Players[1].mCurrentState = Player.PlayerState.Paused;
                        ScreenManager.AddScreen(new PauseMenuScreen(ScreenManager), PlayerIndex.Two);
                        CurrentStatus = BattleStatus.Paused;
                    }
                    //for (int i = 0; i < 2; i++)
                    switch (Players[0].CurrentWeapon)
                    {
                        case Player.WeaponType.Snipe:

                            if (input.CurrentGamePadStates[(int)player1_index].IsButtonDown(Buttons.LeftTrigger))// && reticule.showing!=1 )// && mPlayfield.RedBlocks >= quota)
                            {
                                reticules[0].visible = true;
                            }
                            else
                            {
                                reticules[0].visible = false;
                                reticules[0].bullets = 1;
                            }
                            if (reticules[0].visible)
                            {
                                reticules[0].GamepadListener(input.CurrentGamePadStates[(int)player1_index], input.LastGamePadStates[(int)player1_index], Players[1]);
                            }
                            break;

                    }
                    switch (Players[1].CurrentWeapon)
                    {
                        case Player.WeaponType.Snipe:

                            if (input.CurrentGamePadStates[(int)player2_index].IsButtonDown(Buttons.LeftTrigger))// && reticule.showing!=1 )// && mPlayfield.RedBlocks >= quota)
                            {
                                reticules[1].visible = true;
                            }
                            else
                            {
                                reticules[1].visible = false;
                                reticules[1].bullets = 1;
                            }
                            if (reticules[1].visible)
                            {
                                reticules[1].GamepadListener(input.CurrentGamePadStates[(int)player2_index], input.LastGamePadStates[(int)player2_index], Players[0]);
                            }
                            break;

                    }

                    Players[0].HandleInput(input.CurrentGamePadStates[(int)player1_index], input.LastGamePadStates[(int)player1_index]);
                    Players[1].HandleInput(input.CurrentGamePadStates[(int)player2_index], input.LastGamePadStates[(int)player2_index]);

                    break;

                case BattleStatus.RoundOver:
                    if (input.CurrentGamePadStates[(int)player2_index].IsButtonDown(Buttons.Start))
                    {
                        Players[1].mCurrentState = Player.PlayerState.Waiting;
                    }
                    if (input.CurrentGamePadStates[(int)player1_index].IsButtonDown(Buttons.Start))
                    {
                        Players[0].mCurrentState = Player.PlayerState.Waiting;
                    }
                    break;

            }

             //   if (input == null)
               //     throw new ArgumentNullException("input");
            //
            // Look up inputs for the active player profile.
            int playerIndex = (int)ControllingPlayer.Value;

            KeyboardState keyboardState = input.CurrentKeyboardStates[playerIndex];
            GamePadState gamePadState = input.CurrentGamePadStates[playerIndex];

            // The game pauses either if the user presses the pause button, or if
            // they unplug the active gamepad. This requires us to keep track of
            // whether a gamepad was ever plugged in, because we don't want to pause
            // on PC if they are playing with a keyboard and have no gamepad at all!
            bool gamePadDisconnected = !gamePadState.IsConnected &&
                                       input.GamePadWasConnected[playerIndex];
        }
Example #35
0
        /// <summary>
        /// Updates the state of the game. This method checks the GameScreen.IsActive
        /// property, so the game will stop updating when the pause menu is active,
        /// or if you tab away to a different application.
        /// </summary>
        public override void Update(GameTime gameTime, bool otherScreenHasFocus,
            bool coveredByOtherScreen)
        {
            switch(CurrentStatus)
            {
                case BattleStatus.CountDown:
                    if (timer == 2) countdownmessage = "Ready";
                    else
                    if (timer <= 1 && Players[0].mCurrentState==Player.PlayerState.Waiting)
                    {
                        countdownmessage = "Fight";
                        Players[0].startnewgame();
                        Players[1].startnewgame();
                        Players[1].mCurrentState = Player.PlayerState.Playing;
                        Players[0].mCurrentState = Player.PlayerState.Playing;
                        CurrentStatus = BattleStatus.Playing;

                    }
                    else
                    if (timer < 0)
                    {
                        CurrentStatus = BattleStatus.Playing;
                    }
                    timer = timer - (float)gameTime.ElapsedGameTime.TotalSeconds;
                    break;
                case BattleStatus.Playing:
                    if (reticules[0].visible) reticules[0].Update(gameTime);
                    if (reticules[1].visible) reticules[1].Update(gameTime);
                    //if (reticule.finished)
                    //{
                    //    Vector2 coords;
                    //    coords = reticule.GetCoords();
                    //    coords.X = (coords.X - Opponent.mPlayfield.Xpos) / Opponent.mPlayfield.mBlockSize;
                    //    coords.Y = (coords.Y - Opponent.mPlayfield.Ypos) / Opponent.mPlayfield.mBlockSize;
                    //    Opponent.mPlayfield.ClearBlock((int)coords.X, (int)coords.Y);
                    //    //     mCurrentState = PlayerState.Playing;
                    //}
                    //if (reticule2.finished)
                    //{
                    //    Vector2 coords;
                    //    coords = reticule.GetCoords();
                    //    coords.X = (coords.X - Opponent.mPlayfield.Xpos) / Opponent.mPlayfield.mBlockSize;
                    //    coords.Y = (coords.Y - Opponent.mPlayfield.Ypos) / Opponent.mPlayfield.mBlockSize;
                    //    Opponent.mPlayfield.ClearBlock((int)coords.X, (int)coords.Y);
                    //    //     mCurrentState = PlayerState.Playing;
                    //}
            foreach (Player p in Players)
            {
                p.Update(gameTime);
                if (p.mCurrentState ==Player.PlayerState.GameOver)
                {
                    CurrentStatus = BattleStatus.RoundOver;
                    if (Players[0].mCurrentState == Player.PlayerState.GameOver)
                        Players[0].roundswon++;
                    else Players[1].roundswon++;
                    roundnumber++;
                    if (Players[0].roundswon > 2 || Players[1].roundswon > 2)
                    {

                        CurrentStatus = BattleStatus.BattleOver;

                    }

                }

            }

            elapsed = (float)gameTime.ElapsedGameTime.TotalSeconds;
            break;

                case BattleStatus.RoundOver:
            if (Players[1].mCurrentState == Player.PlayerState.Waiting &&
                Players[0].mCurrentState == Player.PlayerState.Waiting)
            {//ready to start next round
                Players[1].startnewgame();
                Players[0].startnewgame();
                timer = 2;
                CurrentStatus = BattleStatus.CountDown;
            }
            break;

                case BattleStatus.Paused:
                    if(ScreenManager.screens[ ScreenManager.screens.Count-1]==this)
                    {
                        CurrentStatus = BattleStatus.Playing;
                        Players[0].mCurrentState = Player.PlayerState.Playing;
                        Players[1].mCurrentState = Player.PlayerState.Playing;
                    }
                    break;
            }
            base.Update(gameTime, otherScreenHasFocus, coveredByOtherScreen);
        }
Example #36
0
 // set in stream
 public static UInt32 set( mln.EndianStream rEs, BattleStatus rIn )
 {
     rEs.put((UInt32)rIn);
     return 4;
 }
Example #37
0
 // get from stream
 public static UInt32 get( mln.EndianStream rEs, out BattleStatus rOut )
 {
     UInt32 ret=0;
     rEs.get( out ret );
     rOut = (BattleStatus)ret;
     return 4;
 }
Example #38
0
	// Update is called once per frame
	void Update () {

		switch (myBattleStatus) {
		case BattleStatus.AttackingFar:
			if (Time.time - lastFireTime >= FireRate && Target.GetComponent<Robot>().myBattleStatus != BattleStatus.Defeated) {
				if (Ammo > 0) {
					fireBullet ();
					lastFireTime = Time.time;
					Ammo--;
				}
			}
			else if(Target.GetComponent<Robot>().myBattleStatus == BattleStatus.Defeated)
			{
				myBattleStatus = BattleStatus.EnemyDefeated;
			
			}

			break;
		case BattleStatus.Defeated:

			Speed = 0;

			break;
		}

		switch (steeringtype) {
				case SteeringType.Wander:
						wanderSteering ();
						break;
				case SteeringType.Flee:
						fleeSteering ();
						break;
				case SteeringType.Seek:
						seekSteering ();
						break;
				case SteeringType.None:
						rigidbody2D.velocity = Vector2.zero;
						rigidbody2D.angularVelocity = 0f;
						break;
				case SteeringType.FaceOnly:
			//velocity unwichtig
						faceOnlySteering ();
						break;
				}

	}
Example #39
0
    // Use this for initialization
    void Start()
    {
        level = 10;

        fillLevelArray(playerLevelArray, playerLevels);

        gunAbilityChosen = -1;
        swordAbilityChosen = -1;
        stanceChosen = -1;

        stanceChanged = false;

        lastAbilityChosen = -1;

        lastEnemyBuffDebuffClicked = -1;

        lastBuffDebuffClicked = -1;

        turnDamage = 0;

        battleTurn = 0;
        TurnPhases = 0;
        lastTurn = 1;

        gameTimer = 0;

        playerBattleStatus = BattleStatus.NotFighting;

        //Initial Stats
        hP = playerLevelArray[level].playerLevelArray.hP;

        hPMax = playerLevelArray[level].playerLevelArray.hP;

        aP = 0;

        xP = 0;
        xPNextLevel = playerLevelArray[level+1].playerLevelArray.xPNeeded;

        str = playerLevelArray[level].playerLevelArray.str;
        def = playerLevelArray[level].playerLevelArray.def;

        populateAbilities(playerAbilities);
        populatePlayerStatus(playerStatus);
    }
    protected void OnReady()
    {
        timelinePosition = GlobalDataStructure.BATTLE_TIMELINE_READY;
        isBlocking = false;
        isEvading = false;
        battleStatus = BattleStatus.Ready;
        if(guardedTarget != null)
        {
            guardedTarget.guardTarget = null;
            guardedTarget = null;
        }

        if(data.battleType == BattleType.Physical)
        {//自愈机制
            if(currentHP >= maxHP * GlobalDataStructure.HP_RECOVER_THRESHOLD && currentHP < maxHP)
            {
                int recoverAmount = currentHP;
                currentHP += (int) (maxHP * GlobalDataStructure.HP_RECOVER_AMOUNT);
                recoverAmount = currentHP - recoverAmount;

                MessageEventArgs args = new MessageEventArgs();
                args.AddMessage("Name", GetName());
                args.AddMessage("Amount", recoverAmount);
                EventManager.Instance.PostEvent (BattleEvent.OnHPAutoRecover, args);
            }
        }
        else if(data.battleType == BattleType.Magical)
        {//回复机制
            if( currentHP < maxHP)
            {
                int recoverAmount = currentHP;
                currentHP += (int) (maxHP * GlobalDataStructure.MP_RECOVER_AMOUNT);
                recoverAmount = currentHP - recoverAmount;

                MessageEventArgs args = new MessageEventArgs();
                args.AddMessage("Name", GetName());
                args.AddMessage("Amount", recoverAmount);
                EventManager.Instance.PostEvent (BattleEvent.OnMPAutoRecover, args);
            }
        }

        List<Buff> toRemoveList = new List<Buff>();
        foreach(Buff buff in buffList)
        {
            buff.Tick();
            if(buff.effectTurns == 0)
            {
                toRemoveList.Add(buff);
            }
        }
        foreach(Buff buff in toRemoveList)
        {
            buffList.Remove(buff);
        }

        availableCommands = Command.GetAvailableCommands(this);
    }
 public void PostExecute()
 {
     timelinePosition = -commandToExecute.postExecutionRecover * BattleAttribute.Speed(this);//后退距离 = 帧 * 步进
     battleStatus = BattleStatus.Prepare;
     commandToExecute = new CommandNone();
 }
        public static void Initialize()
        {
            State.screenState = State.ScreenState.WORLD_MAP;
            State.selectionState = State.SelectionState.NoSelection;
            State.battleState = State.BattleState.Attack;

            State.screenWidth = 0;
            State.screenHeight = 0;

            State.dialoguePosition = 0;//Which textbox you're in
            State.dialogueChoicePosition = 0;
            State.displayedDialogueMessage = "";

            State.dialogueLinePosition = 0;
            State.dialogueWordPosition = 0;
            State.dialogueCharacterPosition = 0;

            State.firstDialogueWord = "";
            State.lastTimeDialogueChecked = 0;
            State.messageBegin = false;
            State.currentDialogueMessage = new List<string>();

            State.originalHexClicked = null;

            State.currentAttacker = null;
            State.currentDefender = null;

            State.battleMessage = "";

            State.attackerBattleStatus = BattleStatus.NoStatus;
            State.defenderBattleStatus = BattleStatus.NoStatus;

            State.enemyMoveIndex = 0;
            State.firstTimeEnemyTurn = true;

            State.elapsedTimeForMove = 0;

            State.font = null;
        }
Example #43
0
        public void Update(BattleStatus battleState)
        {
            //Check what Battle State the Battle is in.
            switch (battleState)
            {
                case (BattleStatus.Intro):
                    {
                        //Update the TextManager.
                        _TextBox.Update();

                        //Update the Healthbars.
                        _HealthBarOpponent.Update();
                        _HealthBarPlayer.Update();
                        //Update the Experience Bar.
                        _ExperienceBarPlayer.Update();

                        break;
                    }
                case (BattleStatus.BattleMenu):
                    {
                        //Update the TextManager.
                        _TextBox.Update();

                        //Update the Healthbars.
                        _HealthBarOpponent.Update();
                        _HealthBarPlayer.Update();
                        //Update the Experience Bar.
                        _ExperienceBarPlayer.Update();

                        //Update the BattleMenu.
                        _BattleMenu.Update();

                        break;
                    }
            }
        }
Example #44
0
	public void Reset ()
	{
		  HP = r_HP;
		  FireRate = r_FireRate;
		  Damage = r_Damage;
		  Ammo = r_Ammo;
		  Speed = r_Speed;
		
		  Attdist = r_Attdist; // Angriffsdistanz
		  Sightdist = r_Sightdist; // Sichtweite
		
		  Target = r_Target;
		
		  steeringtype = r_steeringtype;
		  BulletPrefab = r_BulletPrefab;
		 
	      lastFireTime = r_lastFireTime;
		
		  myBattleStatus = r_myBattleStatus;
		  pastBattleStatus = r_pastBattleStatus;

		  this.rigidbody2D.MovePosition(r_position);
		  this.rigidbody2D.MoveRotation(r_dreh);

		  Velocity = Vector2.zero;
		  angularVelocity = 0;
		 
	}
Example #45
0
 // convert id to string
 public static string BattleStatusToString( BattleStatus v )
 {
     switch(v){
     case BattleStatus.BATTLESTATUS_ENTERABLE : return "BATTLESTATUS_ENTERABLE";
     case BattleStatus.BATTLESTATUS_BATTLING : return "BATTLESTATUS_BATTLING";
     case BattleStatus.BATTLESTATUS_WAITING : return "BATTLESTATUS_WAITING";
     case BattleStatus.BATTLESTATUS_RESERVED : return "BATTLESTATUS_RESERVED";
     }
     return "unknown";
 }
Example #46
0
 private void PaperButton_Click(object sender, RoutedEventArgs e)
 {
     currentStatus = handler.Round(new Paper());
     narrator.Text = currentStatus.Log;
     if (currentStatus.BattleOver)
         endOfEventLog();
     else
         updateButtons();
 }