コード例 #1
0
    void CheckSuit(int id)
    {
        if (GetSuitAmount(id) == 5)
        {
            suit_id = id;

            var commond = SuitConfig.Get(id).suit_function.Split(';');
            foreach (var c in commond)
            {
                GameStaticMethod.ExecuteCommond(c);
            }
        }
        else
        {
            if (suit_id != -1)
            {
                var commond = SuitConfig.Get(suit_id).suit_function.Split(';');
                foreach (var c in commond)
                {
                    GameStaticMethod.ExecuteBackCommond(c);
                }
                suit_id = -1;
            }
        }
    }
コード例 #2
0
    public void Execute(string[] content)
    {
        while (content_index < content.Length)
        {
            var commond = content[content_index].Split(';');
            switch (commond[0])
            {
            case "npc_inactive":
                _text.text = commond[1];
                break;

            case "inactive_button":
                var btn = m_inactiveBtns[inactiveBtn_index];
                btn.gameObject.SetActive(true);
                btn.onClick.RemoveAllListeners();
                btn.onClick.AddListener(() => { GameStaticMethod.ExecuteCommond(commond[2].Trim()); });
                btn.GetComponentInChildren <Text>().text = commond[1];
                inactiveBtn_index += 1;
                break;

            default:
                break;
            }

            content_index++;
        }
    }
コード例 #3
0
ファイル: BagView.cs プロジェクト: ccLemontea/Gradution
    public void Equip()
    {
        if (!CurretnSelect.icon.gameObject.activeSelf)
        {
            return;
        }
        switch (CurretnSelect.data.itemtype)
        {
        case ItemType.武器:
            var config = WeaponConfig.Get(CurretnSelect.data.config_id);
            if (config.需要等级 > ActorModel.Model.GetLevel())
            {
                View.CurrentScene.OpenView <TipView>().SetContent("等级不够 需要等级: " + DreamerTool.Util.DreamerUtil.GetColorRichText(config.需要等级.ToString(), Color.red));
                return;
            }
            Equip(config, WeaponConfig.Get(ActorModel.Model.GetPlayerEquipment(EquipmentType.武器)), EquipmentType.武器);
            break;

        case ItemType.肩膀:
            var arm_config = ArmConfig.Get(CurretnSelect.data.config_id);
            Equip(arm_config, ArmConfig.Get(ActorModel.Model.GetPlayerEquipment(EquipmentType.肩膀左)), EquipmentType.肩膀左);
            break;

        case ItemType.衣:
            var torso_config = TorsoConfig.Get(CurretnSelect.data.config_id);
            Equip(torso_config, TorsoConfig.Get(ActorModel.Model.GetPlayerEquipment(EquipmentType.衣)), EquipmentType.衣);
            break;

        case ItemType.手链:
            var sleeve_config = SleeveConfig.Get(CurretnSelect.data.config_id);
            Equip(sleeve_config, SleeveConfig.Get(ActorModel.Model.GetPlayerEquipment(EquipmentType.手链)), EquipmentType.手链);
            break;

        case ItemType.裤子:
            var pelvis_config = PelvisConfig.Get(CurretnSelect.data.config_id);
            Equip(pelvis_config, PelvisConfig.Get(ActorModel.Model.GetPlayerEquipment(EquipmentType.裤子)), EquipmentType.裤子);
            break;

        case ItemType.鞋子:
            var foot_config = FootConfig.Get(CurretnSelect.data.config_id);
            Equip(foot_config, FootConfig.Get(ActorModel.Model.GetPlayerEquipment(EquipmentType.鞋子)), EquipmentType.鞋子);
            break;

        case ItemType.消耗品:
            GameStaticMethod.ExecuteCommond(ConsumablesConfig.Get(CurretnSelect.data.config_id).function);
            ActorModel.Model.bag_items.Remove(CurretnSelect.data);
            CurretnSelect.icon.gameObject.SetActive(false);
            ItemUITip.gameObject.SetActive(false);
            break;

        case ItemType.盾牌:
            var shield_config = ShieldConfig.Get(CurretnSelect.data.config_id);
            Equip(shield_config, ShieldConfig.Get(ActorModel.Model.GetPlayerEquipment(EquipmentType.盾牌)), EquipmentType.盾牌);
            break;

        default:
            break;
        }
    }
コード例 #4
0
    public override void GetHurt(AttackData attackData)
    {
        if (!photonView.IsMine)
        {
            photonView.RPC("RPCGetHurt", RpcTarget.Others, JsonMapper.ToJson(attackData));
        }

        if (shieldEffect.activeSelf && (attackData.attack_pos - transform.position).normalized.x * transform.right.x > 0)
        {
            _rigi.ResetVelocity();
            _rigi.AddForce(-transform.right * 20, ForceMode2D.Impulse);
            GameObjectPoolManager.GetPool("metal_hit").Get(transform.position + transform.right * 2, Quaternion.identity, 1.5f);
            return;
        }

        _anim.SetTrigger("hit");
        GameStaticMethod.ChangeChildrenSpriteRendererColor(gameObject, Color.red);
        transform.rotation = attackData.attack_pos.x > transform.position.x ? Quaternion.identity : Quaternion.Euler(0, 180, 0);
        GameObjectPoolManager.GetPool("hit_effect").Get(transform.position + new Vector3(0, 2, 0), Quaternion.identity, 0.5f);


        _model.SetHealth(-DreamerTool.Util.DreamerUtil.GetHurtValue(attackData.hurt_value, _model.GetPlayerAttribute(PlayerAttribute.物防)));


        switch (attackData.attack_type)
        {
        case HitType.普通:
            break;

        case HitType.击退:
            if (!actor_state.isGround)
            {
                _rigi.ResetVelocity();
                _rigi.ClearGravity();
            }
            else
            {
                _rigi.ResetVelocity();
                _rigi.AddForce(-transform.right * 20, ForceMode2D.Impulse);
            }
            break;

        case HitType.击飞:
            _rigi.ResetVelocity();
            _rigi.AddForce(new Vector2(-transform.right.x * 0.5f, 0.5f).normalized * 50, ForceMode2D.Impulse);
            break;

        case HitType.挑:
            _rigi.ResetVelocity();
            _rigi.AddForce(transform.up * 95, ForceMode2D.Impulse);
            break;

        default:
            break;
        }
    }
コード例 #5
0
    public virtual void GetHurt(AttackData attackData)
    {
        if (actor_state.isSuperArmor)
        {
            return;
        }

        if (actor_state.isShield && (attackData.attack_pos - transform.position).normalized.x * transform.right.x > 0)
        {
            _rigi.ResetVelocity();
            _rigi.AddForce(-transform.right * 20, ForceMode2D.Impulse);
            GameObjectPoolManager.GetPool("metal_hit").Get(transform.position + transform.right * 2, Quaternion.identity, 1.5f);
            return;
        }

        View.CurrentScene.GetView <GameInfoView>().SetScreenEffect(Color.red, 1, 0.1f, 0.5f);
        _anim.SetTrigger("hit");
        transform.rotation = attackData.attack_pos.x > transform.position.x ? Quaternion.identity : Quaternion.Euler(0, 180, 0);
        GameObjectPoolManager.GetPool("hit_effect").Get(transform.position + new Vector3(0, 2, 0), Quaternion.identity, 0.5f);
        Timer.Register(0.25f, () => { View.CurrentScene.GetView <GameInfoView>().SetScreenEffect(Color.red, 0, 0.1f, 0.5f); });
        actor_state.isSuperArmor = true;
        Timer.Register(super_armor_time, () => { actor_state.isSuperArmor = false; });
        var hurt_value = -DreamerTool.Util.DreamerUtil.GetHurtValue(attackData.hurt_value, ActorModel.Model.GetPlayerAttribute(PlayerAttribute.物防));

        ActorModel.Model.SetHealth(hurt_value);

        GameStaticMethod.ChangeChildrenSpriteRendererColor(gameObject, Color.red);



        switch (attackData.attack_type)
        {
        case HitType.普通:
            break;

        case HitType.击退:
            _rigi.ResetVelocity();
            _rigi.AddForce(-transform.right * 10, ForceMode2D.Impulse);
            break;

        case HitType.击飞:
            _rigi.ResetVelocity();
            _rigi.AddForce(new Vector2(-transform.right.x * 0.5f, 0.5f).normalized * 20, ForceMode2D.Impulse);
            break;

        case HitType.挑:
            break;

        default:
            break;
        }
    }
コード例 #6
0
ファイル: EndlessScene.cs プロジェクト: ccLemontea/Gradution
    private new void Awake()
    {
        base.Awake();
#if UNITY_EDITOR
        if (ActorModel.Model == null)
        {
            ActorModel.CreateModel();
        }
        GameStaticMethod.GameInit();
#endif

        enemySpawners = GetComponentsInChildren <EnemySpawn>();
        SpawnEnemys();

        GetView <GameInfoView>().SetTipText("第" + level + "层");
    }
コード例 #7
0
ファイル: GameScene.cs プロジェクト: ccLemontea/Gradution
    public override void Awake()
    {
        base.Awake();

        GameStaticMethod.GameInit();

        switch (backScene)
        {
        case BackScene.None:
            break;

        case BackScene.FightScene:
            OpenView <HobbyView>();
            OpenView <RoomView>();
            break;

        default:
            break;
        }
        backScene = BackScene.None;
    }
コード例 #8
0
 private void OnMouseExit()
 {
     InputHandler.Instance.UnSelectEnemyUnit();
     GameStaticMethod.ChangeCursor(CursorType.Idle);
 }
コード例 #9
0
 private void OnMouseEnter()
 {
     InputHandler.Instance.SelectEnemyUnit(unit);
     GameStaticMethod.ChangeCursor(CursorType.Fight);
 }
コード例 #10
0
    public Commoand HandleInput()
    {
        if (Input.GetKeyDown(KeyCode.Mouse1))
        {
            if (enemyUnit != null)
            {
                return(new AttackCommoand(controlUnit, enemyUnit));
            }
            else
            {
                var hit = GameStaticMethod.GetMouseRayCastHit(LayerMask.GetMask("Ground"));
                if (hit.collider != null)
                {
                    GameObjectPoolManager.GetPool("click_move").Get(hit.point, Quaternion.identity, 1);
                    return(new HeroMoveToCommoand(controlUnit, hit.point));
                }
            }
        }
        if (Input.GetKeyDown(KeyCode.W))
        {
            if (enemyUnit != null)
            {
                if (Vector3.Distance(enemyUnit.GetPosNoY(), controlUnit.GetPosNoY()) <= 3)
                {
                    return(new SkillCommoand(controlUnit, SkillType.W, SkillExcuteType.Directivity, enemyUnit));
                }
                else
                {
                    return(new SkillMoveToCommoand(controlUnit, enemyUnit.GetPos(), 3, new SkillCommoand(controlUnit, SkillType.W, SkillExcuteType.Directivity, enemyUnit)));
                }
            }
        }
        if (Input.GetKeyDown(KeyCode.R))
        {
            if (enemyUnit != null)
            {
                if (Vector3.Distance(enemyUnit.GetPosNoY(), controlUnit.GetPosNoY()) <= 3)
                {
                    return(new SkillCommoand(controlUnit, SkillType.R, SkillExcuteType.Directivity, enemyUnit));
                }
                else
                {
                    return(new SkillMoveToCommoand(controlUnit, enemyUnit.GetPos(), 3, new SkillCommoand(controlUnit, SkillType.R, SkillExcuteType.Directivity, enemyUnit)));
                }
            }
        }
        if (Input.GetKeyDown(KeyCode.Alpha4))
        {
            var hit = GameStaticMethod.GetMouseRayCastHit(LayerMask.GetMask("Ground"));
            if (hit.collider != null)
            {
                return(new PutEyeCommoand(controlUnit, hit.point));
            }
        }
        if (Input.GetKeyDown(KeyCode.Q))
        {
            if (controlUnit.skillDict[SkillType.Q].GetSkillTarget() != null)
            {
                return(new SkillCommoand(controlUnit, SkillType.Q, SkillExcuteType.Directivity));
            }
            else
            {
                var hit = GameStaticMethod.GetMouseRayCastHit(LayerMask.GetMask("Ground"));
                if (hit.collider != null)
                {
                    return(new SkillCommoand(controlUnit, SkillType.Q, SkillExcuteType.Line, (hit.point - controlUnit.GetPos()).normalized));
                }
            }
        }
        if (Input.GetKeyDown(KeyCode.D))
        {
            var hit = GameStaticMethod.GetMouseRayCastHit(LayerMask.GetMask("Ground"));
            if (hit.collider != null)
            {
                return(new FlashCommoand(controlUnit, hit.point));
            }
        }

        return(null);
    }
コード例 #11
0
    public void GetHurt(AttackData attackData)
    {
        if (enemy_data.isdie)
        {
            return;
        }
        if (!isSuperArmor)
        {
            transform.rotation = attackData.attack_pos.x > transform.position.x ? Quaternion.Euler(0, 180, 0) : Quaternion.identity;
        }
        var hurt = DreamerUtil.GetHurtValue(attackData.hurt_value, model.GetDefend());

        enemy_data.SetHealth(-hurt);

        var pop_text = GameObjectPoolManager.GetPool("pop_text").Get(transform.position + popTextOffset, Quaternion.identity, 0.5f);

        pop_text.GetComponent <PopText>().SetText(Mathf.RoundToInt((float)hurt).ToString(), attackData.isCrit?Color.red:Color.white);

        View.CurrentScene.GetView <GameInfoView>().enemy_health.SetData(enemy_data);

        AudioManager.Instance.PlayOneShot("hit");
        GameObjectPoolManager.GetPool("hit_effect").Get(transform.position + new Vector3(0, 2, 0), Quaternion.identity, 0.5f);


        if (isSuperArmor)
        {
            attackData.attack_type = HitType.普通;
        }


        GameStaticMethod.ChangeChildrenSpriteRendererColor(gameObject, Color.red);

        switch (attackData.attack_type)
        {
        case HitType.普通:
            if (!isGround)
            {
                _rigi.ClearGravity();
            }
            _rigi.ResetVelocity();
            _anim.SetTrigger("hit");
            break;

        case HitType.击退:

            if (!isGround)
            {
                _rigi.ResetVelocity();
                _rigi.ClearGravity();
            }
            else
            {
                _rigi.ResetVelocity();
                _rigi.AddForce(transform.right * hit_back_distance, ForceMode2D.Impulse);
            }
            _anim.SetTrigger("hit");
            break;

        case HitType.击飞:
            _anim.SetTrigger("hitfly");
            _rigi.ResetVelocity();
            if (isGround)
            {
                _rigi.AddForce(new Vector2(transform.right.x * 0.5f, 0.5f).normalized *hit_fly_distance, ForceMode2D.Impulse);
            }
            else
            {
                _rigi.AddForce(new Vector2(transform.right.x * 0.5f, 0).normalized *hit_fly_distance, ForceMode2D.Impulse);
            }
            break;

        case HitType.挑:
            _rigi.ResetVelocity();
            _rigi.AddForce(Vector2.up * 95, ForceMode2D.Impulse);
            break;

        default:
            break;
        }
    }