void Awake()
 {
     if (instance == null)
     {
         instance = this;
     }
 }
Пример #2
0
    // Time:0-所有回合开始 1-回合后 2-回合前
    public static void BuffProcess(FighterController F1, int Time)
    {
        bool Worked = false;

        for (int i = 0; i < F1.BindMember.buffs.Count; i++)
        {
            Buff b = F1.BindMember.buffs[i];
            Worked = false;
            if (b.Name == "能力学习" && Time == 0)
            {
                Worked = true;
                FighterController F = (FighterController)b.Tag;
                AcB.Msg.Add(F.BindMember.Name + "的能力学习起效果了!");
                AcB.Msg.Add(F.BindMember.Name + "学会了" + F1.BindMember.LastSkill.Name + "!");
                for (int j = 0; j < 3; j++)
                {
                    if (F.BindMember.Magics[j] == "能力学习")
                    {
                        F.BindMember.Magics[j] = F1.BindMember.LastSkill.Name;
                    }
                }
            }
            if (b.Name == "回避" && Time == 1)
            {
                Worked = true;
                AcB.Msg.Add(F1.BindMember.Name + "撑过了这个回合!");
                F1.BindMember.DEF = (float)b.Tag;
            }
            if (b.Name == "睡眠" && Time == 0)
            {
                Worked   = true;
                F1.State = FighterController.BattleState.Sleep;
                AcB.Msg.Add(F1.BindMember.Name + "正睡得香甜...");
                AcB.Rounds.Remove(F1);
            }
            if (b.Name == "害怕" && Time == 0)
            {
                Worked   = true;
                F1.State = FighterController.BattleState.BadHurt;
                AcB.Msg.Add(F1.BindMember.Name + "被敌方震慑了,不能行动!");
                AcB.Rounds.Remove(F1);
            }
            if (b.Name == "冻伤" && Time == 0)
            {
                Worked   = true;
                F1.State = FighterController.BattleState.BadHurt;
                AcB.Msg.Add(F1.BindMember.Name + "冻伤的伤口发作了!");
                float hp = F1.BindMember.HP;
                F1.BindMember.HP *= 0.75f;
                F1.BindMember.HP  = Mathf.Ceil(F1.BindMember.HP);
                AcB.Msg.Add(F1.BindMember.Name + "受到了" + Mathf.Floor(F1.BindMember.HP - hp) + "点伤害。");
            }
            if (Worked)
            {
                b.Round--;
            }
            F1.BindMember.buffs[i] = b;
        }
        F1.BindMember.buffs.RemoveAll(m => m.Round <= 0);
    }
Пример #3
0
 void Start()
 {
     animator   = GetComponent <Animator>();
     controller = GetComponent <FighterController>();
     dealDamage = GetComponentInParent <DealDamage>();
     fighter    = GetComponentInParent <Fighter>();
 }
    public static FighterControllerState DetermineFighterControllerState(FighterController fighterController)
    {
        FighterControllerState fighterControllerState = null;

        if (fighterController.IsPlayerOne() || GameData.GetPlayers() == 2)
        {
            fighterControllerState = new PlayerControllerState();
        }
        else
        {
            switch (GameData.GetComputerDifficulty())
            {
            case Difficulty.Easy:
                fighterControllerState = new EasyAiControllerState();
                break;

            case Difficulty.Medium:
                fighterControllerState = new MediumAiControllerState();
                break;

            case Difficulty.Hard:
                fighterControllerState = new HardAiControllerState();
                break;
            }
        }

        fighterControllerState.Init(fighterController);
        return(fighterControllerState);
    }
Пример #5
0
 public void UpdateIfTargeted(FighterController attacker, FighterAction action, List <FighterController> targets)
 {
     if (targets.Contains(_fighter))
     {
         UpdateUiElements();
     }
 }
Пример #6
0
 public virtual void CreateFighter()
 {
     if (FoodAmount >= fighterCost)
     {
         FoodAmount = -fighterCost;
         fighters++;
         NewGameController.Instance.TeamSize[teamID] += 1;
         if (FighterPool.Count > 0)
         {
             FighterController recycle = FighterPool.Find(f => !f.isActive);
             if (recycle != null)
             {
                 recycle.SetMoM(this.gameObject);
                 recycle.transform.position = Location + new Vector3(1, 0, 1);
             }
             else
             {
                 InstantiateFighter();
             }
         }
         else
         {
             InstantiateFighter();
         }
     }
 }
Пример #7
0
    // Use this for initialization
    void Start()
    {
        fc = GetComponent <FighterController> ();

        hb = Instantiate(healthBar, transform.position, transform.rotation) as GameObject;
        //initialGreenLength = hb.transform.localScale.x;
    }
Пример #8
0
 public void RemoveEnemyFighter(FighterController fighter)
 {
     if (enemyFighters.fighters.Contains(fighter))
     {
         enemyFighters.fighters.Remove(fighter);
     }
 }
 public void OnFighterActionComplete(FighterController fighter, FighterAction action, List <FighterController> targets)
 {
     if (_fightersTakingAction.Contains(fighter))
     {
         _fightersTakingAction.Remove(fighter);
     }
 }
 public FighterInformation(Transform _transform, Fighter _fighterScript, Renderer _visible, FighterController _fighterController)
 {
     baseTransform     = _transform;
     fighterScript     = _fighterScript;
     renderer          = _visible;
     fighterController = _fighterController;
 }
Пример #11
0
    // Update is called once per frame
    void Update()
    {
        if (playServices == null)
        {
            playServices = FindObjectOfType <PlayServicesController>();
        }
        if (camera == null)
        {
            camera = FindObjectOfType <CameraController>();
        }
        if (player == null)
        {
            player = FindObjectOfType <FighterController>();
        }
        if (enemySpawner == null)
        {
            enemySpawner = FindObjectOfType <EnemySpawner>();
        }
        if (gameManager == null)
        {
            gameManager = FindObjectOfType <GameManager>();
        }
        if (soundManager == null)
        {
            soundManager = FindObjectOfType <SoundManager>();
        }

        if (codeText == null)
        {
            codeText = FindObjectOfType <CodeTextController>();
        }
    }
Пример #12
0
    public void InitializeFighters()
    {
        if (PlayerFighterController != null)
        {
            Destroy(PlayerFighterController.gameObject);
        }
        if (OpponentFighterController != null)
        {
            Destroy(OpponentFighterController.gameObject);
        }

        GameObject playerGO = Instantiate(FighterPrefab, new Vector3(PlayerStartPosition.X + Offset, PlayerStartPosition.Y), Quaternion.identity);

        PlayerFighterController = playerGO.AddComponent <NeuralFighterController>();
        GameObject opponentGO = Instantiate(FighterPrefab, new Vector3(OpponentStartPosition.X + Offset, OpponentStartPosition.Y), Quaternion.identity);

        OpponentFighterController = (FighterController)opponentGO.AddComponent(NextFighterController);

        GameController.FighterControllers = new Dictionary <int, FighterController>
        {
            { 0, PlayerFighterController },
            { 1, OpponentFighterController }
        };

        GameController.ResetGame();
    }
Пример #13
0
    public void InitFighter(Transform parent)
    {
        currentSpawned = Instantiate(fighters[currActIdx].gameObject, parent);
        currentSpawned.transform.position   = fighters[currActIdx].transform.position;
        currentSpawned.transform.rotation   = fighters[currActIdx].transform.rotation;
        currentSpawned.transform.localScale = Vector3.one * 0.2f;

        player = currentSpawned.GetComponent <FighterController>();
        player.healthIndicator        = Instantiate(healthBar, currentSpawned.transform).GetComponent <HealthIndicator>();
        player.healthIndicator.player = currentSpawned.transform.Find("Indicator");
        player.isActive = true;

        Rigidbody sr = currentSpawned.GetComponent <Rigidbody>();

        sr.useGravity  = true;
        sr.isKinematic = false;

        SetFloor();
        floor.transform.SetParent(null);
        currentSpawned.SetActive(true);

        fighters[currActIdx].gameObject.SetActive(false);
        selectorScreen.SetActive(false);
        controlScreen.SetActive(true);
        controlScreen.transform.SetParent(null);
    }
Пример #14
0
 public void PlayerInputComplete(FighterController fighter, FighterAction action, List <FighterController> targets)
 {
     if (fighter == _fighter)
     {
         UpdateAnimationTrigger(CameraStates.DEFAULT);
     }
 }
 public void SubmitFighterInput(FighterController fighter, FighterAction action, List <FighterController> targets)
 {
     if (submitFighterInput != null)
     {
         submitFighterInput.Broadcast(fighter, action, targets);
     }
 }
 // Player Input
 public void EnqueuePlayerFighter(FighterController fighter)
 {
     if (ownFighters.fighters.Contains(fighter))
     {
         FighterReadyQueue.Enqueue(fighter);
     }
 }
Пример #17
0
 public void AddPlayerFighter(FighterController fighter)
 {
     if (!playerFighters.fighters.Contains(fighter))
     {
         playerFighters.fighters.Add(fighter);
     }
 }
 public void NotifyBattleMeterFull(FighterController fighter)
 {
     if (FighterListsManager.Instance.enemyFighters.fighters.Contains(fighter))
     {
         StartCoroutine(HandleEnemyFighterInput(fighter));
     }
 }
 public void OnFighterActionStart(FighterController fighter, FighterAction action, List <FighterController> targets)
 {
     if (!_fightersTakingAction.Contains(fighter))
     {
         _fightersTakingAction.Add(fighter);
     }
 }
Пример #20
0
        public override void DoAiLogic()
        {
            foreach (Entity go in gameObjects.Values)
            {
                // Removes spinning from collisions
                go.SetAngularVelocity(Vector3.Zero);

                if (go is EnemyFighter)
                {
                    FighterController.Update(go as EnemyFighter, c, null);
                }
                else if (go is EnemyCruiser)
                {
                    CruiserController.Update(go as EnemyCruiser);
                }
                else if (go is Feather)
                {
                    Feather f = go as Feather;
                    f.Update();
                }
                else if (go is Beam)
                {
                    Beam b = go as Beam;
                    if (Vector3.Distance(b.Position, Vector3.Zero) > 500)
                    {
                        physicsManager.RemoveObject(b.ID);
                    }
                }
            }
        }
Пример #21
0
 public void UpdateOnBattleMeterTicker(FighterController fighter)
 {
     if (fighter == _fighter)
     {
         UpdateUiElements();
     }
 }
    public virtual void Init(bool isPlayerOne, GameObject otherFighter)
    {
        GameObject canvas = GameObject.FindGameObjectWithTag("Canvas");

        gameManager            = GameObject.FindGameObjectWithTag("Game Manager").GetComponent <GameManager>();
        rb                     = GetComponent <Rigidbody>();
        this.isPlayerOne       = isPlayerOne;
        this.otherFighter      = otherFighter;
        otherFighterController = otherFighter.GetComponent <FighterController>();
        fighterControllerState = FighterControllerState.DetermineFighterControllerState(this);

        if (isPlayerOne)
        {
            controllerInput = ControllerManager.GetControllerInput(1);
            fighterUI       = canvas.transform.GetChild(0).GetComponent <FighterUI>();
        }
        else
        {
            controllerInput = ControllerManager.GetControllerInput(2);
            fighterUI       = canvas.transform.GetChild(1).GetComponent <FighterUI>();
        }
        anim          = GetComponent <Animator>();
        attackManager = GetComponent <AttackManager>();
        attackManager.Init();
        fighterUI.Init();

        startingPosition.Set(transform.position.x, transform.position.y, transform.position.z);
        startingRotation.Set(transform.rotation.x, transform.rotation.y, transform.rotation.z, transform.rotation.w);
        startingScale.Set(transform.localScale.x, transform.localScale.y, transform.localScale.z);
    }
Пример #23
0
 public void RemovePlayerFighter(FighterController fighter)
 {
     if (playerFighters.fighters.Contains(fighter))
     {
         playerFighters.fighters.Remove(fighter);
     }
 }
Пример #24
0
 public void AddEnemyFighter(FighterController fighter)
 {
     if (!enemyFighters.fighters.Contains(fighter))
     {
         enemyFighters.fighters.Add(fighter);
     }
 }
Пример #25
0
 public void Start()
 {
     fighter = transform.root.gameObject.GetComponent <FighterController>();
     if (fighter != null)
     {
         player = fighter.playerID;
     }
 }
 public void SetActiveFighter(FighterController fighter)
 {
     input.fighter = fighter;
     if (activeFighterSet != null)
     {
         activeFighterSet.Broadcast(input.fighter);
     }
 }
Пример #27
0
        public override IEnumerator Play(FighterController fighter, FighterAction action, List <FighterController> targets)
        {
            fighter.fighterAnimationController.UpdateAnimationTrigger(runAnimation.trigger);
            yield return(fighter.agentController.SetDestination(fighter.startingPosition, 0));

            fighter.transform.rotation = fighter.startingRotation;
            fighter.fighterAnimationController.UpdateAnimationTrigger(fighter.startingTrigger);
        }
Пример #28
0
 public void PlayerFighterActive(FighterController fighter)
 {
     if (_currentTrigger == CameraStates.DEFAULT)
     {
         UpdateAnimationTrigger(CameraStates.VIEW_PLAYERS);
         _fighter = fighter;
     }
 }
Пример #29
0
    private IEnumerator Setup()
    {
        yield return(Intro());

        yield return(NextLevel());

        this.fighter = Instantiate(fighterPrefab, respawn).GetComponent <FighterController>();
    }
 public void SetAbovePlayerFighter(FighterController fighter)
 {
     if (playerFighters.fighters.Contains(fighter))
     {
         _target = fighter.transform;
         arrowIcon.SetActive(true);
     }
 }
Пример #31
0
 public void SetPartner(int index, FighterController partner)
 {
     partners[index] = partner;
 }
Пример #32
0
 public FighterAttackingPlayer(Transform fighter, Transform player)
 {
     this.player = player.GetComponent<PlayerController>();
     this.fighter = fighter.GetComponent<FighterController>();
 }
Пример #33
0
 void Start() {
     player = FindObjectOfType< FighterController >();
 }
Пример #34
0
 public FighterReachedScreenEdge(Transform fighter, Transform player)
 {
     this.player = player.GetComponent<PlayerController>();
     this.fighter = fighter.GetComponent<FighterController>();
     playerPosition = Vector3.zero;
 }
Пример #35
0
 public FighterDead(Transform fighter)
 {
     this.fighter = fighter.GetComponent<FighterController>();
 }
Пример #36
0
 public void SetLeader(FighterController fighter)
 {
     leader = fighter;
 }