Exemple #1
0
        public void OnFrame(PlayerWeaponController controller, IWeaponCmd cmd)
        {
            if (!_initialized)
            {
                _initialized = true;
            }

            if (cmd.IsFire && cmd.FilteredInput.IsInput(EPlayerInput.IsLeftAttack))
            {
                DoReady(controller, cmd);
            }

            if (cmd.SwitchThrowMode)
            {
                DoSwitchMode(controller, cmd);
            }

            if (cmd.IsReload && cmd.FilteredInput.IsInput(EPlayerInput.IsReload))
            {
                DoPull(controller, cmd);
            }

            if (cmd.IsThrowing && cmd.FilteredInput.IsInput(EPlayerInput.IsThrowing))
            {
                DoThrowing(controller, cmd);
            }

            //判断打断
            CheckBrokeThrow(controller, cmd);
        }
Exemple #2
0
        public static ThrowingEntity CreateThrowingEntity(
            ThrowingContext throwingContext,
            IEntityIdGenerator entityIdGenerator,
            PlayerWeaponController controller,
            int serverTime, Vector3 dir, float initVel,
            WeaponResConfigItem newWeaponConfig,
            ThrowingConfig throwingConfig)
        {
            int throwingEntityId = entityIdGenerator.GetNextEntityId();

            var     emitPost       = PlayerEntityUtility.GetThrowingEmitPosition(controller);
            Vector3 velocity       = dir * initVel;
            var     throwingEntity = throwingContext.CreateEntity();

            throwingEntity.AddEntityKey(new EntityKey(throwingEntityId, (int)EEntityType.Throwing));

            throwingEntity.AddThrowingData(
                velocity,
                false,
                false,
                0,
                serverTime,
                false,
                initVel,
                throwingConfig,
                newWeaponConfig.SubType
                );

            throwingEntity.AddPosition();
            throwingEntity.position.Value = emitPost;
            throwingEntity.AddOwnerId(controller.Owner);
            throwingEntity.isFlagSyncNonSelf = true;
            throwingEntity.AddLifeTime(DateTime.Now, throwingConfig.CountdownTime + 2000);
            return(throwingEntity);
        }
Exemple #3
0
 // Start is called before the first frame update
 void Start()
 {
     playerWeapon     = GameObject.Find("Player").GetComponent <PlayerWeaponController>();
     selfCollider     = GetComponent <BoxCollider2D>();
     itemText         = GameObject.Find("ItemPickupText").GetComponent <TextMeshProUGUI>();
     itemText.enabled = false;
 }
Exemple #4
0
        protected float UpdateSpread(PlayerWeaponController controller, float accuracy)
        {
            SniperSpreadLogicConfig config = controller.HeldWeaponAgent.SniperSpreadLogicCfg;
            float param;
            var   posture = controller.RelatedStateInterface.GetCurrentPostureState();

            if (!controller.RelatedPlayerMove.IsGround)
            {
                param = config.AirParam;
            }
            else if (controller.RelatedPlayerMove.HorizontalVelocity > Length2D1)
            {
                param = config.LengthParam1;
            }
            else if (controller.RelatedPlayerMove.HorizontalVelocity > Length2D2)
            {
                param = config.LengthParam2;
            }
            else if (posture == XmlConfig.PostureInConfig.Crouch || posture == XmlConfig.PostureInConfig.Prone)
            {
                param = config.DuckParam;
            }
            else
            {
                param = config.DefaultParam;
            }
            if (!controller.RelatedCameraSNew.IsAiming())
            {
                param += config.FovAddParam;
            }
            return(param);
        }
Exemple #5
0
 private void Start()
 {
     playerWeaponController         = player.GetComponent <PlayerWeaponController>();
     UIEventHandler.OnstatsChanged += UpdateStats;                   //UI事件驱动
     UIEventHandler.OnItemEquipped += UpdateEquipWeapon;             //UI事件驱动
     IniTializeStats();
 }
        public void OnBulletFire(PlayerWeaponController controller, WeaponSideCmd cmd)
        {
            //            DebugUtil.MyLog("[seq:{1}]MuzzleP3Position:{0}",controller.RelatedFirePos.MuzzleP3Position,cmd.UserCmd.Seq);
            var bulletCfg = controller.HeldWeaponAgent.BulletCfg;

            AssertUtility.Assert(bulletCfg != null);
            var cmdSeq   = cmd.UserCmd.Seq;
            var fireAmmu = controller.RelatedCameraSNew.IsAiming() ? sightFireAmmu : normalFireAmmu;

            // 射出子弹
            for (int i = 0; i < bulletCfg.HitCount; i++)
            {
                var bulletData = PlayerBulletData.Allocate();
                bulletData.Dir =
                    PrecisionsVector3.MakePrecisionsV(
                        fireAmmu.GetFireDir(cmdSeq + i, controller, cmd.UserCmd.Seq), 3);
                var viewPos = PrecisionsVector3.MakePrecisionsV(fireAmmu.GetFireViewPosition(controller), 3);
                bulletData.ViewPosition = PrecisionsVector3.MakeRoundPrecisionsV(viewPos, 3);
                //枪口位置取原始精度
                bulletData.EmitPosition = fireAmmu.GetFireEmitPosition(controller);
                controller.AddAuxBullet(bulletData);
                // DebugUtil.AppendShootText(cmd.UserCmd.Seq, "[Bullet Fire]{0}", bulletData.ToStringExt());
            }

            controller.AfterAttack();
        }
Exemple #7
0
 private void CallOnFrame(PlayerWeaponController controller, IWeaponCmd cmd)
 {
     foreach (var beforeFire in _frames)
     {
         beforeFire.OnFrame(controller, cmd);
     }
 }
Exemple #8
0
        public void OnFrame(PlayerWeaponController controller, IWeaponCmd cmd)
        {
            bool isFire = false;

            //判断是否有开火触发
            foreach (var fireTrigger in _fireTrigggers)
            {
                isFire |= fireTrigger.IsTrigger(controller, cmd);
            }
            if (isFire)
            {
                //判断是否有开火限制
                foreach (var fireCheck in _fireChecks)
                {
                    isFire &= fireCheck.IsCanFire(controller, cmd);
                }
            }
            if (isFire)
            {
                Fire(controller, cmd);
            }
            else
            {
                CallOnIdle(controller, cmd);
            }

            CallOnFrame(controller, cmd);
        }
Exemple #9
0
 private void CallBeforeFires(PlayerWeaponController controller, IWeaponCmd cmd)
 {
     foreach (var beforeFire in _beforeFires)
     {
         beforeFire.BeforeFireBullet(controller, cmd);
     }
 }
Exemple #10
0
 private void CallOnIdle(PlayerWeaponController controller, IWeaponCmd cmd)
 {
     foreach (var fireIdle in _idles)
     {
         fireIdle.OnIdle(controller, cmd);
     }
 }
Exemple #11
0
 private void CallAfterFires(PlayerWeaponController controller, IWeaponCmd cmd)
 {
     foreach (var afterfire in _afterFires)
     {
         afterfire.OnAfterFire(controller, cmd);
     }
 }
Exemple #12
0
 private void CallBulletFires(PlayerWeaponController controller, IWeaponCmd cmd)
 {
     foreach (var bulletfire in _bulletFires)
     {
         bulletfire.OnBulletFire(controller, cmd);
     }
 }
        public void BeforeFireBullet(PlayerWeaponController weaponController, IWeaponCmd cmd)
        {
            var weaponState = weaponController.HeldWeaponAgent.RunTimeComponent;

            if (weaponState.LastFireTime == 0)
            {
            }
            else
            {
                var config = weaponController.HeldWeaponAgent.PistolAccuracyLogicCfg;
                if (config == null)
                {
                    return;
                }


                var accuracy = weaponState.Accuracy;
                accuracy -= config.AccuracyFactor * (0.3f - (cmd.RenderTime - weaponState.LastFireTime) / 1000.0f);
                if (accuracy > config.MaxAccuracy)
                {
                    accuracy = config.MaxAccuracy;
                }
                else if (accuracy < config.MinAccuracy)
                {
                    accuracy = config.MinAccuracy;
                }
                weaponState.Accuracy = accuracy;
            }
        }
 protected void DefaultFire(PlayerWeaponController controller)
 {
     if (controller.RelatedCameraSNew != null && controller.RelatedCameraSNew.ViewNowMode == (int)ECameraViewMode.GunSight)
     {
         if (controller.RelatedStateInterface != null)
         {
             controller.RelatedStateInterface.SightsFire();
         }
         else
         {
             LogError("player has no stateInterface");
         }
     }
     else
     {
         if (controller.RelatedStateInterface != null)
         {
             controller.RelatedStateInterface.Fire();
         }
         else
         {
             LogError("player has no stateInterface");
         }
     }
 }
Exemple #15
0
        public void OnFrame(PlayerWeaponController controller, IWeaponCmd cmd)
        {
            bool isFire = false;

//#if UNITY_EDITOR
//            controller.SyncDebugInfo();
//#endif
            //判断是否有开火触发
            foreach (var fireTrigger in _fireTrigggers)
            {
                isFire |= fireTrigger.IsTrigger(controller, cmd);
            }
            if (isFire)
            {
                //     DebugUtil.LogInUnity("controller:"+ controller.ToString(), DebugUtil.DebugColor.Blue);
                //判断是否有开火限制
                foreach (var fireCheck in _fireChecks)
                {
                    isFire &= fireCheck.IsCanFire(controller, cmd);
                }
            }
            if (isFire)
            {
                // DebugUtil.LogInUnity("Fire checker enabled ", DebugUtil.DebugColor.Blue);
                Fire(controller, cmd);
            }
            else
            {
                CallOnIdle(controller, cmd);
            }

            CallOnFrame(controller, cmd);
        }
Exemple #16
0
 public void Update(PlayerWeaponController controller, IUserCmd cmd, Contexts contexts)
 {
     _leftcmd.SetCurrentCmd(cmd);
     _rightCmd.SetCurrentCmd(cmd);
     _leftWeaponFire.OnUpdate(controller, _leftcmd, contexts);
     _rightWeaponFire.OnUpdate(controller, _rightCmd, contexts);
 }
 void Start()
 {
     /*
      * //Testing inventory by adding items if not running unit tests
      *  //Add("Wood");
      *  //Add("Wood");
      *  //Add("Wood");
      *
      *  for (int i = 0; i < 2; i++)
      *  {
      *      //Add("Wood");
      *  }
      *
      *  Add("DebugPotion");
      *  Add("DebugPotion");
      *  Add("DebugPotion");
      *  Add("Sword");
      *  Add("Axe");
      *  Add("Iron Sword Recipe");
      */
     Add("Iron Sword Recipe");
     consumableController   = GetComponent <ConsumablesController>();
     playerWeaponController = GetComponent <PlayerWeaponController>();
     hasSwordBeenAdded      = false;
 }
    private void Start()
    {
        movementController = GetComponent <PlayerMovementController>();
        weaponController   = GetComponentInChildren <PlayerWeaponController>();

        base.Init(new LoadingState(gameObject));
    }
Exemple #19
0
    public void Setup()
    {
        cursorPointer = Resources.Load("Prefabs/Cursor Pointer", typeof(GameObject)) as GameObject;
        dead          = false;

        //Setup movement script
        playerMovement = playerInstance.GetComponent <PlayerMovement> ();
        playerMovement.setMoves(playerNumber);
        playerMovement.cursorPointerPrefab = cursorPointer;
        playerMovement.playerColor         = playerColor;
        playerMovement.distanceTravelled   = 0f;

        //Setup Inventory references
        powerUpInventory = playerInstance.GetComponent <PowerUpInventory> ();
        powerUpInventory.playerNumber = playerNumber;
        GameManager.Instance.uiInventory.SetColor(playerNumber, playerColor);

        //Setup weapon controller script
        playerWeaponController = playerInstance.GetComponent <PlayerWeaponController>();
        playerWeaponController.setNumber(playerNumber);
        playerData      = playerInstance.GetComponent <PlayerData> ();
        playerSkin      = playerInstance.GetComponent <PlayerSkin> ();
        active          = true;
        movementEnabled = true;
    }
Exemple #20
0
 void Start()
 {
     player                 = GameObject.FindGameObjectWithTag("Player");
     playerController       = player.GetComponent <PlayerController>();
     playerWeaponController = player.GetComponentInChildren <PlayerWeaponController>();
     userInterface          = player.GetComponentInChildren <UserInterface>();
 }
Exemple #21
0
        protected override void UpdateFire(PlayerWeaponController controller, WeaponSideCmd cmd, Contexts contexts)
        {
            bool isFire = false;

            foreach (var fireTrigger in _fireTrigggers)
            {
                isFire |= fireTrigger.IsTrigger(controller, cmd);
            }
            if (isFire)
            {
                foreach (var fireCheck in _fireCheckers)
                {
                    isFire &= fireCheck.IsCanFire(controller, cmd);
                }
            }
            if (isFire && controller.RelatedThrowAction.ThrowingEntityKey == EntityKey.Default &&
                (controller.RelatedThrowAction.LastFireWeaponKey == controller.HeldWeaponAgent.WeaponKey.EntityId || controller.RelatedThrowAction.LastFireWeaponKey == 0))
            {
                Fire(controller, cmd, contexts);
                controller.RelatedThrowAction.LastFireWeaponKey = controller.HeldWeaponAgent.WeaponKey.EntityId;
            }
            else
            {
                CallOnIdle(controller.HeldWeaponAgent, cmd);
            }

            CallOnFrame(controller.HeldWeaponAgent, cmd);
        }
 void Start()
 {
     playerWeaponController         = player.GetComponent <PlayerWeaponController>();
     UIEventHandler.OnStatsChanged += UpdateStats;
     UIEventHandler.OnItemEquipped += UpdateEquippedWeapon;
     InitialiseStats();
 }
 public void EquipWeapon(PlayerWeaponController weaponController)
 {
     isEquiped = true;
     //animator.SetTrigger("equip");
     weaponController.EquipWeapon(this);
     gameObject.GetComponent <BoxCollider>().enabled = false;
 }
Exemple #24
0
        public void OnFrame(PlayerWeaponController controller, IWeaponCmd cmd)
        {
            var heldAgent = controller.HeldWeaponAgent;

            heldAgent.RunTimeComponent.IsPrevCmdFire = cmd.IsFire;
            if (cmd.IsSwitchFireMode && cmd.FilteredInput.IsInput(XmlConfig.EPlayerInput.IsSwitchFireMode))
            {
                var config = heldAgent.DefaultFireModeLogicCfg;
                if (config == null || config == null)
                {
                    return;
                }
                EFireMode mode     = (EFireMode)heldAgent.BaseComponent.FireMode;
                EFireMode nextMode = config.AvaliableModes[0];
                for (int i = 0; i < config.AvaliableModes.Length; i++)
                {
                    if (config.AvaliableModes[i] == mode)
                    {
                        nextMode = config.AvaliableModes[(i + 1) % config.AvaliableModes.Length];
                    }
                }
                if (nextMode == mode)
                {
                    controller.ShowTip(ETipType.FireModeLocked);
                }
                else
                {
                    ShowFireModeChangeTip(controller, nextMode);
                }
                heldAgent.BaseComponent.FireMode = (int)nextMode;
                //  GameAudioMedium.SwitchFireModelAudio(nextMode, controller.appearanceInterface.Appearance.GetWeaponP1InHand());
                // controller.PlayWeaponSound(XmlConfig.EWeaponSoundType.SwitchFireMode);
            }
        }
Exemple #25
0
        public void AfterAttack(PlayerWeaponController controller, IWeaponCmd cmd)
        {
            var weaponState = controller.HeldWeaponAgent.RunTimeComponent;

            weaponState.MeleeAttacking         = true;
            weaponState.NextAttackingTimeLimit = controller.RelatedTime.ClientTime + _maxCD;
            //TODO 声音和特效添加
            if (cmd.IsFire)
            {
                StartMeleeAttack(controller, cmd.RenderTime + _config.AttackInterval,
                                 new MeleeAttackInfo {
                    AttackType = MeleeAttckType.LeftMeleeAttack
                },
                                 _config);
            }
            else
            {
                StartMeleeAttack(controller, cmd.RenderTime + _config.SpecialAttackInterval,
                                 new MeleeAttackInfo {
                    AttackType = MeleeAttckType.RightMeleeAttack
                },
                                 _config);
            }
            controller.ExpendAfterAttack();
        }
    // Start is called before the first frame update
    void Start()
    {
        _gameManager = GameManager.Instance;
        _player      = _gameManager.Player;
        GameManager.Instance.PlayerGO = this;

        _player.SlipperyForce    = 20f;
        _player.AllowHurting     = true;
        _player.AllowBreakingArm = true;
        _player.AllowRolling     = true;

        _rigidbody2d = GetComponent <Rigidbody2D>();
        _animator    = GetComponent <Animator>();
        _animatorOverrideController         = new AnimatorOverrideController(_animator.runtimeAnimatorController);
        _animator.runtimeAnimatorController = _animatorOverrideController;
        _capsuleCollider                         = GetComponent <CapsuleCollider2D>();
        _audioSource                             = GetComponent <AudioSource>();
        _footStepController                      = transform.GetChild(2).gameObject.GetComponent <PlayerFootstepBehaviour>();
        _playerWeaponController                  = GetComponent <PlayerWeaponController>();
        _playerWeaponController.Player           = _player;
        _playerWeaponController.PlayerController = this;
        _breakablesCollider                      = transform.GetChild(3).gameObject;

        _animator.SetBool("IsWalking", IsPlayerWalking);
    }
        public virtual void OnAfterFire(PlayerWeaponController controller, IWeaponCmd cmd)
        {
            int weaponId       = controller.HeldWeaponAgent.ConfigId;
            var needActionDeal = CheckNeedActionDeal(weaponId, ActionDealEnum.Fire);

            OnAfterFire(controller, needActionDeal);
        }
    //public Item PotionLog;

    private void Start()
    {
        if (Instance != null && Instance != this)
        {
            Destroy(gameObject);
        }
        else
        {
            Instance = this;
        }

        playerWeaponController = this.GetComponent <PlayerWeaponController>();

        consumableController = this.GetComponent <ConsumableController>();

        GiveItem("sword");

        GiveItem("staff");

        GiveItem("potion_log");

        //List<BaseStat> swordStats = new List<BaseStat>();

        //swordStats.Add(new BaseStat(6, "Power", "Your Power level."));

        //sword = new Item(swordStats, "staff");

        //PotionLog = new Item(new List<BaseStat>(), "potion_log", "Drink this to log something cool!", "Drink", "Log Potion", false);
    }
Exemple #29
0
    void ChangeCurrentWeapon(int index, bool initial = false)
    {
        index = Mathf.Clamp(index, 0, attachedWeapons.Count - 1);

        if (index == currentWeaponIndex && currentWeapon.currentState != WeaponStates.Disabled)
        {
            return;
        }

        if (initial)
        {
            if (attachedWeapons[index].currentState == WeaponStates.Disabled)
            {
                attachedWeapons[index].Show(weaponAttachment);
                currentWeapon      = attachedWeapons[index];
                currentWeaponIndex = index;
                ChangeWeapons.Invoke();
            }
        }
        else
        {
            if (currentWeapon.currentState == WeaponStates.Active)
            {
                currentWeapon.Hide();
                currentWeaponIndex = index;
                isChange           = true;
            }
            else if (currentWeapon.currentState == WeaponStates.Disabled)
            {
                currentWeaponIndex = index;
                isChange           = true;
            }
        }
    }
Exemple #30
0
        public void OnIdle(PlayerWeaponController controller, IWeaponCmd cmd)
        {
            var config = controller.HeldWeaponAgent.RifleFireCounterCfg;

            if (config == null)
            {
                return;
            }
            var weaponState = controller.HeldWeaponAgent.RunTimeComponent;

            if (weaponState.ContinuesShootDecreaseNeeded)
            {
                weaponState.ContinuesShootDecreaseNeeded = false;
                if (weaponState.ContinuesShootCount > config.MaxCount)
                {
                    weaponState.ContinuesShootCount = config.MaxCount;
                }
                weaponState.ContinuesShootDecreaseTimer = controller.RelatedTime + config.DecreaseInitInterval;
            }

            if (weaponState.ContinuesShootCount > 0 && weaponState.ContinuesShootDecreaseTimer <= controller.RelatedTime)
            {
                weaponState.ContinuesShootDecreaseTimer = controller.RelatedTime + config.DecreaseStepInterval;
                weaponState.ContinuesShootCount--;
            }
        }
    void Start()
    {
        weaponControl = GameManager.instance.player.GetComponent<PlayerWeaponController>();
        spriteRenderer = GetComponent<SpriteRenderer>();
        int randomNumber = Random.Range(0, 100);

        // deciding on the item
        item = getItem(randomNumber);

        // rendering the item
        renderItem(item);

        //setLayers();
        int layerNum = decideLayer(transform.position.y);
        gameObject.GetComponent<SpriteRenderer>().sortingLayerName = Utilities.SortingLayerNames[layerNum];

        // An animation of the item falling on the ground
        iTween.MoveBy(gameObject, iTween.Hash("y", -0.3f, "time", 0.5f, "easeType", "easeInOutSine"));
        // An animation of the item flying to the HUD
        SendItemToHud();
    }
 void Start()
 {
     // Get input controller.
     m_inputController = InputFactory.GetCurrentInputController ();
     // Get movement controller.
     m_movement = GetComponent<MovementController>();
     // Get weapon controller (in children).
     m_weaponController = GetComponentInChildren<PlayerWeaponController> ();
     // Get thrust particles (in children).
     m_thrustEffect = GetComponentInChildren<ParticleSystem> ();
 }
Exemple #33
0
 void Start()
 {
     playerWeaponController = GetComponent<PlayerWeaponController>();
     playerAnimationController = GetComponent<PlayerAnimationController>();
     characterMovementController = GetComponent<CharacterMovementController>();
 }
 void Start()
 {
     playerAnimator=GetComponentInParent<Animator>();
     weaponsController=GetComponent<PlayerWeaponController>();
     rBody2D=GetComponent<Rigidbody2D>();
 }