Exemple #1
0
    private void Update()
    {
        Move();
        // 임시 무기변경
        if (Input.GetKeyUp(KeyCode.Tab))
        {
            if (weaponMode == WeaponMode.Sword)
            {
                weaponMode = WeaponMode.Gun;
            }
            else
            {
                weaponMode = WeaponMode.Sword;
            }

            currentWeapon.gameObject.SetActive(false);
            CurrentWeapon = weaponInfo.weaponList[(int)weaponMode];
            currentWeapon.gameObject.SetActive(true);
        }

        if (Input.GetMouseButtonDown(0))
        {
            MouseAttack();
        }
    }
Exemple #2
0
    private void ChangeMode(KeyCode button)
    {
        switch (button)
        {
        case KeyCode.Alpha1:
            _weaponMode = WeaponMode.AIR;
            break;

        case KeyCode.Alpha2:
            _weaponMode = WeaponMode.WATER;
            break;

        case KeyCode.Alpha3:
            _weaponMode = WeaponMode.FIRE;
            break;

        case KeyCode.Alpha4:
            _weaponMode = WeaponMode.SUCTION;
            break;

        case KeyCode.Alpha5:
            _weaponMode = WeaponMode.ICE;
            break;

        case KeyCode.Alpha6:
            _weaponMode = WeaponMode.LIGHTNING;
            break;
        }
    }
Exemple #3
0
    public WeaponMode InitializeWeaponState(WeaponMode mode, float radius, RedemptionTDColor color)
    {
        if (mode == WeaponMode.GATHER)
        {
            var resourceLayer = 1 << LayerMask.NameToLayer("Resource");
            var hit           = Physics2D.OverlapCircle(transform.position, radius, resourceLayer);

            if (hit != null && hit.GetComponent <LiteUnit>().HeavyReference.Color == color)
            {
                CurrentWeaponState = gatherState;
                CurrentWeaponState.EnterWeaponState(hit.GetComponent <ResourceLite>());
                return(WeaponMode.GATHER);
            }
            else
            {
                CurrentWeaponState = nullState;
                CurrentWeaponState.EnterWeaponState();
                return(WeaponMode.NONE);
            }
        }
        else
        {
            CurrentWeaponState = blastState;
            CurrentWeaponState.EnterWeaponState();
            return(WeaponMode.WAVE);
        }
    }
Exemple #4
0
    // Start is called before the first frame update
    void Start()
    {
        ps = bulletEffect.GetComponent <ParticleSystem>();

        anim = GetComponentInChildren <Animator>();

        wMode = WeaponMode.Normal;
    }
    private void Awake()
    {
        FpsControllerCore.instance = this;
        //Screen.SetResolution(1280, 720, true);

        GameOverCanvas.enabled    = false;
        firePlayAgainText.enabled = false;
        weaponMode = WeaponMode.Manual;
        hasRedKey  = false;
    }
Exemple #6
0
 private void Awake()
 {
     this.characterBody = this.gameObject.GetComponent <CharacterBody>();
     this.childLocator  = this.gameObject.GetComponentInChildren <ChildLocator>();
     this.model         = this.gameObject.GetComponentInChildren <CharacterModel>();
     this.tracker       = this.gameObject.GetComponent <HenryTracker>();
     this.modelAnimator = this.gameObject.GetComponentInChildren <Animator>();
     this.weaponMode    = WeaponMode.Sword;
     this.currentEnergy = this.maxEnergy;
 }
Exemple #7
0
        void Awake()
        {
            currentGunMode = WeaponMode.None;
            if (isOneShot)
            {
                currentGunMode = WeaponMode.OneShot;
            }
            if (isBurst)
            {
                currentGunMode = WeaponMode.Burst;
            }
            if (isAutmotic)
            {
                currentGunMode = WeaponMode.FullyAutomatic;
            }

            cachedAudioSource = GetComponent <AudioSource>();
            magazineValue     = magazineCapacity;

            if (weaponType == WeaponType.LaserBeam)
            {
                laserBeamTransforms = new Transform[barrels.Length];
                if (muzzleEffect)
                {
                    laserBeamMuzzle = new GameObject[barrels.Length];
                }
                isSynchronizedBarrel = true;
            }


            if (isAutonomous)
            {
                owner = gameObject;
            }

            radar           = GetComponent <Radar>();
            cachedTransform = transform;

                        #if UNITY_EDITOR
            if (isAutonomous)
            {
                if (faction == null)
                {
                    Debug.LogWarning("Faction not assigned on " + gameObject.name, gameObject);
                }

                if (radar == null)
                {
                    Debug.LogWarning("Radar component doesn't exit on " + gameObject.name, gameObject);
                }
            }
                        #endif

            //InitBarrelOrigin();
        }
Exemple #8
0
 public void ChangeWeaponMode()
 {
     if (weaponMode == WeaponMode.burst)
     {
         weaponMode = WeaponMode.volley;
     }
     else
     {
         weaponMode = WeaponMode.burst;
     }
 }
Exemple #9
0
    void Start()
    {
        // 피격 이펙트 오브젝트에서 파티클 시스템 컴포넌트 가져오기
        ps = bulletEffect.GetComponent <ParticleSystem>();

        // 애니메이터 컴포넌트 가져오기
        anim = GetComponentInChildren <Animator>();

        // 무기 기본 모드를 노멀 모드로 설정한다.
        wMode = WeaponMode.Normal;
    }
Exemple #10
0
    public static UnitMode CreateUnitMode(WeaponMode weapon     = WeaponMode.NONE,
                                          EnemyMode enemy       = EnemyMode.NONE,
                                          ResourceMode resource = ResourceMode.NONE)
    {
        var unitMode = new UnitMode();

        unitMode.WeaponMode   = weapon;
        unitMode.EnemyMode    = enemy;
        unitMode.ResourceMode = resource;

        return(unitMode);
    }
Exemple #11
0
 public bool SetWeaponMode(int mode)
 {
     if ((isBurst && mode == 1) || (isAutmotic && mode == 2) || (isOneShot && mode == 0))
     {
         currentGunMode = (WeaponMode)mode;
         return(true);
     }
     else
     {
         return(false);
     }
 }
Exemple #12
0
 public bool SetWeaponMode(WeaponMode mode)
 {
     if ((isBurst && mode == WeaponMode.Burst) || (isAutmotic && mode == WeaponMode.FullyAutomatic) || (isOneShot && mode == WeaponMode.OneShot))
     {
         currentGunMode = mode;
         return(true);
     }
     else
     {
         return(false);
     }
 }
Exemple #13
0
    // Check if the player is in the light and change the weapons mode accordingly
    private void ToggleMode()
    {
        ///Light:
        ///WATER
        ///FIRE
        ///AIR
        ///
        ///Dark:
        ///ICE
        ///LIGHTNING
        ///SUCTION
        ///
        if (DEBUGING)
        {
            return;
        }

        if (_inLight)
        {
            switch (_weaponMode)
            {
            case WeaponMode.ICE:
                _weaponMode = WeaponMode.WATER;
                break;

            case WeaponMode.LIGHTNING:
                _weaponMode = WeaponMode.FIRE;
                break;

            case WeaponMode.SUCTION:
                _weaponMode = WeaponMode.AIR;
                break;
            }
        }
        else
        {
            switch (_weaponMode)
            {
            case WeaponMode.WATER:
                _weaponMode = WeaponMode.ICE;
                break;

            case WeaponMode.FIRE:
                _weaponMode = WeaponMode.LIGHTNING;
                break;

            case WeaponMode.AIR:
                _weaponMode = WeaponMode.SUCTION;
                break;
            }
        }
    }
Exemple #14
0
        private void Update()
        {
            if (_weaponMode == WeaponMode.Primary)
            {
                if (Input.GetButtonDown("Alternate Fire"))
                {
                    _primary.AlternateFire();
                }
                else if (Input.GetButtonDown("Fire"))
                {
                    _primary.Fire();
                }
            }
            else if (_weaponMode == WeaponMode.Secondary && _secondary != null)
            {
                if (Input.GetButtonDown("Alternate Fire"))
                {
                    _secondary.AlternateFire();
                }
                else if (Input.GetButtonDown("Fire"))
                {
                    _secondary.Fire();
                }
            }
            else if (_weaponMode == WeaponMode.Hands)
            {
                if (Input.GetButtonDown("Alternate Fire"))
                {
                    _hands.AlternateFire();
                }
                else if (Input.GetButtonDown("Fire"))
                {
                    _hands.Fire();
                }
            }

            if (Input.GetButtonDown("Switch Weapon"))
            {
                if (_weaponMode == WeaponMode.Primary && _secondary != null)
                {
                    _weaponMode = WeaponMode.Secondary;
                }
                else if (_weaponMode == WeaponMode.Hands)
                {
                    _weaponMode = WeaponMode.Primary;
                }
                else
                {
                    _weaponMode = WeaponMode.Hands;
                }
            }
        }
Exemple #15
0
 public void ShowCurrentWeapon(WeaponMode mode, bool canGather)
 {
     //TODO 0 index for now, will change when weapons increase.
     if (mode == WeaponMode.GATHER)
     {
         gatherObject.SetActive(canGather);
         HideAllWeapons();
     }
     else
     {
         gatherObject.SetActive(false);
         ShowCurrentWeapon((int)mode);
     }
 }
    public void SwitchWeapon()
    {
        if(currentWeapon == null)
        {
            mode = WeaponMode.hands;
            return;
        }

        if(mode == WeaponMode.hands)
        {
            mode = WeaponMode.weapon;
        }
        else
        {
            mode = WeaponMode.hands;
        }
    }
Exemple #17
0
        //Update
        public void Update()
        {
            if (mode != WeaponMode.Prereleased && Trigger)
            {
                mode = WeaponMode.Prereleased;
            }
            else if (mode == WeaponMode.Prereleased && !Trigger)
            {
                if (weapon.Velocity > 2f)
                {
                    mode = WeaponMode.Released;
                }
                else
                {
                    mode = WeaponMode.Held;
                }
            }

            //Set state based on weapon mode
            if (weapon != null)
            {
                if (mode == WeaponMode.Prereleased)
                {
                    weapon.WeaponState = weapon.PreReleased;
                }
                else if (mode == WeaponMode.Released)
                {
                    weapon.WeaponState = weapon.Released;
                }
                else if (mode == WeaponMode.Held && Grip)
                {
                    weapon.WeaponState = weapon.Extended;
                }
                else
                {
                    weapon.WeaponState = weapon.Standard;
                }
            }

            //Scene restore
            if (TrackPad)
            {
                Misc.DestructableManager.Restore();
            }
        }
Exemple #18
0
    public void Use(WeaponMode mode)
    {
        Ray        ray = Camera.main.ViewportPointToRay(new Vector3(0.5f, 0.5f, 0.0f));
        RaycastHit hit;

        if (Physics.Raycast(ray, out hit))
        {
            Damageable damageable;
            if ((damageable = hit.transform.GetComponent <Damageable>()) != null || (damageable = hit.transform.root.GetComponent <Damageable>()) != null)
            {
                GameObject damagePrefab = damageable.damagePrefab;
                if (damagePrefab)
                {
                    GameObject dynamicDecal = (GameObject)Instantiate(damagePrefab, hit.point + hit.normal * UnityEngine.Random.Range(0.0001f, 0.001f), Quaternion.FromToRotation(Vector3.up, hit.normal) * Quaternion.Euler(0.0f, UnityEngine.Random.Range(0.0f, 360.0f), 0.0f));
                    dynamicDecal.name             = "Damage Graphics";
                    dynamicDecal.transform.parent = hit.transform;
                    Weapon.dynamicDecals.Add(dynamicDecal);
                    if (Weapon.dynamicDecals.Count > this.maxDecals)
                    {
                        Destroy(Weapon.dynamicDecals[0]);
                        Weapon.dynamicDecals.RemoveAt(0);
                    }
                }
            }
        }

        switch (mode)
        {
        case WeaponMode.Beating:
            this.UseBeating();
            break;

        case WeaponMode.Throwing:
            this.UseThrowing();
            break;

        case WeaponMode.Shooting:
            this.UseShooting();
            break;
        }
    }
Exemple #19
0
 void Update()
 {
     Fire();
     if (Input.GetKeyDown(KeyCode.R))
     {
         animator.SetTrigger("Reload");
     }
     if (Input.GetKeyDown(KeyCode.LeftControl))
     {
         if (changeWeaponMode == false)
         {
             changeWeaponMode = true;
             weaponMode       = WeaponMode.Continuously;
         }
         else
         {
             changeWeaponMode = false;
             weaponMode       = WeaponMode.Singe;
         }
     }
 }
Exemple #20
0
    private void LoadSettings()
    {
        NumberOfPlayers  = levelSettings.PlayerCount;
        LevelWeaponMode  = levelSettings.LevelWeaponMode;
        PlayerLivesCount = levelSettings.Lives;

        switch (NumberOfPlayers)
        {
        case 1:
            rectCollection = NoSplit;
            break;

        case 2:
            rectCollection = TwoWaySplit;
            break;

        default:
            rectCollection = FourWaySplit;
            break;
        }
    }
Exemple #21
0
    // Update is called once per frame
    void Update()
    {
        // 게임 진행중 아니면 update 스킵
        if (GameManager.gm.gState != GameManager.GameState.Run)
        {
            return;
        }

        if (Input.GetMouseButtonDown(1))
        {
            switch (wMode)
            {
            case WeaponMode.Normal:
                // 수류탄 오브젝트를 생성하고, 수류탄의 생성 위치를 발사 위치로 한다
                GameObject bomb = Instantiate(bombFactory);
                bomb.transform.position = firePosition.transform.position;

                // 수류탄 오브젝트의 리지드보디 컴포넌트를 가져온다
                Rigidbody rb = bomb.GetComponent <Rigidbody>();

                // 카메라의 정면 방향으로 수류탄에 물리적인 힘을 가한다.
                rb.AddForce(Camera.main.transform.forward * throwPower, ForceMode.Impulse);
                break;

            case WeaponMode.Sniper:
                // 줌 모드 상태가 아니라면 줌 모드로 변경
                if (!ZoomMode)
                {
                    Camera.main.fieldOfView = 15f;
                    ZoomMode = true;

                    // 줌 모드일 때 크로스헤어를 변경한다
                    crosshair02_zoom.SetActive(true);
                    crosshair02.SetActive(false);
                }
                // 그렇지 않으면 원래 상태로 변경, 줌 모드 해제
                else
                {
                    Camera.main.fieldOfView = 60f;
                    ZoomMode = false;

                    // 크로스헤어를 스나이퍼 모드로 돌려놓는다
                    crosshair02_zoom.SetActive(false);
                    crosshair02.SetActive(true);
                }
                break;
            }
        }

        if (Input.GetMouseButtonDown(0))
        {
            if (anim.GetFloat("MoveMotion") == 0)
            {
                anim.SetTrigger("Attack");
            }

            Ray        ray     = new Ray(Camera.main.transform.position, Camera.main.transform.forward);
            RaycastHit hitInfo = new RaycastHit();

            if (Physics.Raycast(ray, out hitInfo))
            {
                if (hitInfo.transform.gameObject.layer == LayerMask.NameToLayer("Enemy"))
                {
                    EnemyFSM eFSM = hitInfo.transform.GetComponent <EnemyFSM>();
                    eFSM.HitEnemy(weaponPower);
                }
                else
                {
                    bulletEffect.transform.position = hitInfo.point;
                    bulletEffect.transform.forward  = hitInfo.normal;
                    ps.Play();
                }
            }

            StartCoroutine(ShootEffectOn(0.05f));
        }

        if (Input.GetKeyDown(KeyCode.Alpha1))
        {
            wMode = WeaponMode.Normal;

            // 스나이퍼 모드에서 일반 모드 키를 눌렀을 때 Weapon01_R_zoom은 비활성화, 줌 모드 해제
            crosshair02_zoom.SetActive(false);

            // 카메라의 화면을 다시 원래대로 돌림
            Camera.main.fieldOfView = 60f;

            wModeText.text = "Normal Mode";

            // 1번 스프라이프는 활성화, 2번은 비활성화
            weapon01.SetActive(true);
            weapon02.SetActive(false);
            crosshair01.SetActive(true);
            crosshair02.SetActive(false);

            // Weapon01_R는 활성화되고, Weapon02_R는 비활성화
            Weapon01_R.SetActive(true);
            Weapon02_R.SetActive(false);
        }
        else if (Input.GetKeyDown(KeyCode.Alpha2))
        {
            wMode = WeaponMode.Sniper;

            wModeText.text = "Sniper Mode";

            // 1번 스프라이프는 비활성화, 2번은 활성화
            weapon01.SetActive(false);
            weapon02.SetActive(true);
            crosshair01.SetActive(false);
            crosshair02.SetActive(true);

            // Weapon01_R는 비활성화되고, Weapon02_R는 활성화
            Weapon01_R.SetActive(false);
            Weapon02_R.SetActive(true);
        }
    }
    private void CheckWeaponMode()
    {
        if (Input.GetAxisRaw("Mouse ScrollWheel") > 0)
        {
            if (weaponModeIndex == WEAPON_MODE_ARR.Length - 1)
            {
                weaponModeIndex = -1;
            }
            currWeaponMode = WEAPON_MODE_ARR[++weaponModeIndex];

            ApplyAmmoTextOutline();
        }
        else if (Input.GetAxisRaw("Mouse ScrollWheel") < 0)
        {
            if (weaponModeIndex == 0)
            {
                weaponModeIndex = WEAPON_MODE_ARR.Length;
            }
            currWeaponMode = WEAPON_MODE_ARR[--weaponModeIndex];

            ApplyAmmoTextOutline();
        }
    }
        protected virtual void InputReceived(System.Int16 address, byte[] payload)
        {
            if (this.address != address)
            {
                return;
            }

            weapon = (WeaponMode)payload[0];

            byte buttonFlags = payload[1];

            ButtonValues[0] = (buttonFlags & 0x01) > 0;
            ButtonValues[1] = (buttonFlags & 0x02) > 0;
            ButtonValues[2] = (buttonFlags & 0x04) > 0;
            ButtonValues[3] = (buttonFlags & 0x08) > 0;

            for (int i = 0; i < Buttons.Length; i++)
            {
                Buttons[i].GetComponent <MeshRenderer>().sharedMaterial = ButtonValues[i] ? pressedMaterial : normalMaterial;
            }

            action         = payload[2];
            mode           = payload[3];
            shotsRemaining = payload[4];

            switch (weapon)
            {
            case WeaponMode.RIFLE:
            {
                var rifleAction = (RifleAction)action;
                var rifleMode   = (RifleMode)mode;

                if (gun)
                {
                    if ((RifleAction)action == RifleAction.TRIGGER_UP)
                    {
                        gun.ToggleTrigger(false);
                    }
                    else if ((RifleAction)action == RifleAction.SINGLE)
                    {
                        if (rifleMode == RifleMode.SINGLE)
                        {
                            gun.Fire();
                        }
                        else
                        {
                            gun.ToggleTrigger(true);
                        }
                    }
                    else if ((RifleAction)action == RifleAction.RELOAD)
                    {
                        gun.Reload();
                        SetAmmo(gun.shotsRemaining);
                    }

                    // infinite ammo
                    if (gun.MagazineSize < 0 && shotsRemaining < 10)
                    {
                        SetAmmo(MAXAMMO);
                    }
                }
                break;
            }

            case WeaponMode.CHAINSAW:
            {
                Debug.Log("I'm A Chainsaw!!!");
                var chainsawAction = (ChainsawAction)action;
                var chainsawPower  = mode;
            }
            break;

            case WeaponMode.BLASTER:
            {
                Debug.Log("I'm A Blaster!");
                var blasterAction = (BlasterAction)action;
                var charge        = mode;
                break;
            }
            }
        }
Exemple #24
0
    void Update()
    {
        // 게임 상태가 "게임 중" 상태일 때에만 조작 가능하게 한다.
        if (GameManager.gm.gState != GameManager.GameState.Run)
        {
            return;
        }

        // 노멀 모드: 마우스 오른쪽 버튼을 누르면 시선 방향으로 수류탄을 던지고 싶다.
        // 스나이퍼 모드: 마우스 오른쪽 버튼을 누르면 화면을 확대하고 싶다.

        // 마우스 오른쪽 버튼 입력을 받는다.
        if (Input.GetMouseButtonDown(1))
        {
            switch (wMode)
            {
            case WeaponMode.Normal:
                // 수류탄 오브젝트를 생성하고, 수류탄의 생성 위치를 발사 위치로 한다.
                GameObject bomb = Instantiate(bombFactory);
                bomb.transform.position = firePosition.transform.position;

                // 수류탄 오브젝트의 Rigidbody 컴포넌트를 가져온다.
                Rigidbody rb = bomb.GetComponent <Rigidbody>();

                // 카메라의 정면 방향으로 수류탄에 물리적인 힘을 가한다.
                rb.AddForce(Camera.main.transform.forward * throwPower, ForceMode.Impulse);
                break;

            case WeaponMode.Sniper:
                // 만일, 줌 모드 상태가 아니라면 카메라를 확대하고 줌 모드 상태로 변경한다.
                if (!ZoomMode)
                {
                    Camera.main.fieldOfView = 15f;
                    ZoomMode = true;

                    // 줌 모드일 때 크로스헤어를 변경한다.
                    crosshair02_zoom.SetActive(true);
                    crosshair02.SetActive(false);
                }
                // 그렇지 않으면, 카메라를 원래 상태로 되돌리고 줌 모드 상태를 해제한다.
                else
                {
                    Camera.main.fieldOfView = 60f;
                    ZoomMode = false;

                    // 크로스헤어를 스나이이퍼 모드로 돌려놓는다.
                    crosshair02_zoom.SetActive(false);
                    crosshair02.SetActive(true);
                }
                break;
            }
        }

        // 마우스 왼쪽 버튼을 누르면 시선이 바라보는 방향으로 총을 발사하고 싶다.

        // 마우스 왼쪽 버튼 입력을 받는다.
        if (Input.GetMouseButtonDown(0))
        {
            // 만일 이동 블랜드 트리 파라메터의 값이 0이라면, 공격 애니메이션을 실시한다.
            if (anim.GetFloat("MoveMotion") == 0)
            {
                anim.SetTrigger("Attack");
            }

            // 레이를 생성하고 발사될 위치와 진행 방향을 설정한다.
            Ray ray = new Ray(Camera.main.transform.position, Camera.main.transform.forward);

            // 레이가 부딪힌 대상의 정보를 저장할 변수를 생성한다.
            RaycastHit hitInfo = new RaycastHit();

            // 레이를 발사하고, 만일 부딪힌 물체가 있으면...
            if (Physics.Raycast(ray, out hitInfo))
            {
                // 만일 레이에 부딪힌 대상의 레이어가 "Enemy"라면 데미지 함수를 실행한다.
                if (hitInfo.transform.gameObject.layer == LayerMask.NameToLayer("Enemy"))
                {
                    EnemyFSM eFSM = hitInfo.transform.GetComponent <EnemyFSM>();
                    eFSM.HitEnemy(weaponPower);
                }
                // 그렇지 않다면, 레이에 부딪힌 지점에 피격 이펙트를 플레이한다.
                else
                {
                    // 피격 이펙트의 위치를 레이가 부딪힌 지점으로 이동시킨다.
                    bulletEffect.transform.position = hitInfo.point;

                    // 피격 이펙트의 forward 방향을 레이가 부딪힌 지점의 법선 벡터와 일치시킨다.
                    bulletEffect.transform.forward = hitInfo.normal;

                    // 피격 이펙트를 플레이한다.
                    ps.Play();
                }
            }
            // 총 이펙트를 실시한다.
            StartCoroutine(ShootEffectOn(0.05f));
        }

        // 만일 키보드의 숫자 1번 입력을 받으면, 무기 모드를 일반 모드로 변경한다.
        if (Input.GetKeyDown(KeyCode.Alpha1))
        {
            wMode = WeaponMode.Normal;

            // 스나이퍼 모드에서 일반 모드 키를 눌렀을때
            // Weapon01_R_zoom은 비활성되고, 줌 모드는 해제
            crosshair02_zoom.SetActive(false);

            // 카메라의 화면을 다시 원래대로 돌려준다.
            Camera.main.fieldOfView = 60f;

            // 일반 모드 텍스트 출력
            wModeText.text = "Normal Mode";

            // 1번 스프라이트는 활성화되고, 2번 스프라이트는 비활성화된다.
            weapon01.SetActive(true);
            weapon02.SetActive(false);
            crosshair01.SetActive(true);
            crosshair02.SetActive(false);

            // Weapon01_R는 활성화되고, Weapon02_R는 비활성화된다.
            weapon01_R.SetActive(true);
            weapon02_R.SetActive(false);
        }
        // 만일 키보드의 숫자 2번 입력을 받으면, 무기 모드를 스나이퍼 모드로 변경한다.
        else if (Input.GetKeyDown(KeyCode.Alpha2))
        {
            wMode = WeaponMode.Sniper;

            // 스나이퍼 모드 텍스트 출력
            wModeText.text = "Sniper Mode";

            // 1번 스프라이트는 비활성화되고, 2번 스프라이트는비활성화된다.
            weapon01.SetActive(false);
            weapon02.SetActive(true);
            crosshair01.SetActive(false);
            crosshair02.SetActive(true);

            // Weapon01_R는 활성화되고, Weapon02_R는 비활성화된다.
            weapon01_R.SetActive(false);
            weapon02_R.SetActive(true);
        }
    }
Exemple #25
0
    private void InitializeWeaponState(WeaponMode mode)
    {
        var state = weaponStateCycler.InitializeWeaponState(mode, weapon.GatherRadius, weapon.Color);

        weaponCycler.ShowCurrentWeapon(mode, state == WeaponMode.GATHER);
    }
Exemple #26
0
        public static bool Prefix(WeaponDef __instance, ref string json)
        {
            CustomAmmoCategoriesLog.Log.LogWrite("WeaponDef fromJSON ");
            JObject defTemp = JObject.Parse(json);

            CustomAmmoCategoriesLog.Log.LogWrite(defTemp["Description"]["Id"] + "\n");
            CustomAmmoCategory custCat = CustomAmmoCategories.find((string)defTemp["AmmoCategory"]);
            //CustomAmmoCategories.RegisterWeapon((string)defTemp["Description"]["Id"], custCat);
            ExtWeaponDef extDef = new ExtWeaponDef();

            extDef.AmmoCategory = custCat;
            if (defTemp["Streak"] != null)
            {
                extDef.StreakEffect = (bool)defTemp["Streak"];
                defTemp.Remove("Streak");
            }
            if (defTemp["HitGenerator"] != null)
            {
                try {
                    extDef.HitGenerator = (HitGeneratorType)Enum.Parse(typeof(HitGeneratorType), (string)defTemp["HitGenerator"], true);
                } catch (Exception e) {
                    extDef.HitGenerator = HitGeneratorType.NotSet;
                }
                defTemp.Remove("HitGenerator");
            }
            if (defTemp["FlatJammingChance"] != null)
            {
                extDef.FlatJammingChance = (float)defTemp["FlatJammingChance"];
                defTemp.Remove("FlatJammingChance");
            }
            if (defTemp["GunneryJammingBase"] != null)
            {
                extDef.GunneryJammingBase = (float)defTemp["GunneryJammingBase"];
                defTemp.Remove("GunneryJammingBase");
            }
            if (defTemp["GunneryJammingMult"] != null)
            {
                extDef.GunneryJammingMult = (float)defTemp["GunneryJammingMult"];
                defTemp.Remove("GunneryJammingMult");
            }
            if (defTemp["DirectFireModifier"] != null)
            {
                extDef.DirectFireModifier = (float)defTemp["DirectFireModifier"];
                defTemp.Remove("DirectFireModifier");
            }
            if (defTemp["DisableClustering"] != null)
            {
                extDef.DisableClustering = ((bool)defTemp["DisableClustering"] == true) ? TripleBoolean.True : TripleBoolean.False;
                defTemp.Remove("DisableClustering");
            }
            if (defTemp["NotUseInMelee"] != null)
            {
                extDef.NotUseInMelee = ((bool)defTemp["NotUseInMelee"] == true) ? TripleBoolean.True : TripleBoolean.False;
                defTemp.Remove("NotUseInMelee");
            }
            if (defTemp["DamageOnJamming"] != null)
            {
                extDef.DamageOnJamming = ((bool)defTemp["DamageOnJamming"] == true) ? TripleBoolean.True : TripleBoolean.False;
                defTemp.Remove("DamageOnJamming");
            }
            if (defTemp["Modes"] != null)
            {
                if (defTemp["Modes"].Type == JTokenType.Array)
                {
                    extDef.Modes.Clear();
                    JToken jWeaponModes = defTemp["Modes"];
                    foreach (JObject jWeaponMode in jWeaponModes)
                    {
                        string ModeJSON = jWeaponMode.ToString();
                        if (string.IsNullOrEmpty(ModeJSON))
                        {
                            continue;
                        }
                        ;
                        WeaponMode mode = new WeaponMode();
                        mode.fromJSON(ModeJSON);
                        if (mode.AmmoCategory == null)
                        {
                            mode.AmmoCategory = extDef.AmmoCategory;
                        }
                        //mode.AmmoCategory = extDef.AmmoCategory;
                        CustomAmmoCategoriesLog.Log.LogWrite(" adding mode '" + mode.Id + "'\n");
                        extDef.Modes.Add(mode.Id, mode);
                        if (mode.isBaseMode == true)
                        {
                            extDef.baseModeId = mode.Id;
                        }
                    }
                }
                defTemp.Remove("Modes");
            }
            if (extDef.baseModeId == WeaponMode.NONE_MODE_NAME)
            {
                WeaponMode mode = new WeaponMode();
                mode.Id           = WeaponMode.BASE_MODE_NAME;
                mode.AmmoCategory = extDef.AmmoCategory;
                extDef.baseModeId = mode.Id;
                extDef.Modes.Add(mode.Id, mode);
            }
            CustomAmmoCategories.registerExtWeaponDef((string)defTemp["Description"]["Id"], extDef);
            defTemp["AmmoCategory"] = custCat.BaseCategory.ToString();
            //CustomAmmoCategoriesLog.Log.LogWrite("\n--------------ORIG----------------\n" + json + "\n----------------------------------\n");
            //CustomAmmoCategoriesLog.Log.LogWrite("\n--------------MOD----------------\n" + defTemp.ToString() + "\n----------------------------------\n");
            json = defTemp.ToString();
            return(true);
        }
Exemple #27
0
 public SpawnWeaponInputArgs(WeaponMode weaponMode, RedemptionTDType type, int cost)
 {
     WeaponMode = weaponMode;
     WeaponType = type;
     WeaponCost = cost;
 }
Exemple #28
0
 public void SetMode(WeaponMode mode)
 {
     weaponMode = mode;
 }