Пример #1
0
 public void Init(Character.Stats stats)
 {
     _playerStats            = stats;
     _bookAnimationComponent =
         new BookAnimationComponent(this.transform.GetComponent <Animator>(), this.transform,
                                    new string[] { "Bottom", "Top", "Side" });
 }
Пример #2
0
    private void OnTriggerEnter(Collider col)
    {
        if (col.CompareTag("Player") || col.CompareTag("Hero"))
        {
            switch (_MonsterBulletKind)
            {
            case MonsterBulletKind.RADIATE:
                _monsterstats = this.transform.parent.GetComponent <RadialBullet>()._monsterstats;
                break;

            case MonsterBulletKind.MUCUS:
                _monsterstats = this.transform.parent.GetComponent <SpitBullet>()._monsterstats;
                break;

            case MonsterBulletKind.RADIATEMUCUS:
                _monsterstats = this.transform.parent.GetComponent <RadialSpitBullet>()._monsterstats;
                break;
            }
            if (col.CompareTag("Player"))
            {
                col.GetComponent <PlayerController>().Damaged(Vector3.zero, _monsterstats.Damage,
                                                              StatusEffectKind.kNoStatusEffect);
            }
            else if (col.CompareTag("Hero"))
            {
                col.GetComponentInChildren <Hero>().DoWork(HeroComponentKind.DAMAGED, this.transform.parent);
            }

            ExplosionBullet();
        }
    }
Пример #3
0
 public override void SuperArmor(Character.Stats monsterstats, Transform monster)
 {
     //슈퍼아머
     monsterstats.HeatPoint    += 2;
     monsterstats.MaxHeatPoint += 2;
     monster.GetComponent <Rigidbody>().mass += 1000;
 }
Пример #4
0
 public override void Rapid(Character.Stats monsterstats)
 {
     //날렵한 : 공속, 탄속+
     monsterstats.ShootSpeed  += 0.5f;
     monsterstats.BulletSpeed += 0.5f;
     monsterstats.CheckNegative();
 }
Пример #5
0
    public override void LearnWaterSkill(Character.Stats monsterStats, Transform monster)
    {
        if (this.ActiveSkills == null)
        {
            this.ActiveSkills = new int[3];
        }
        if (this.AcquiredSkills == null)
        {
            this.AcquiredSkills = new List <int>();
        }
        ////랜덤으로 수속성 스킬 습득(패시브면 1번만 쓰고 사라짐 액티브면 저장)
        ///
        int randomSkillnum = Random.Range(0, 2);

        switch (randomSkillnum)
        {
        case 0:     // default Skills
            LearnDefaultSkill(monsterStats, monster);
            break;

        case 1:
            switch (Random.Range(SkillKind.kSlow, SkillKind.kSlow + 1))       //추후 수정
            //WaterSkills - Active
            {
            case SkillKind.kSlow:
                this.ActiveSkills[SkillCount] = SkillKind.kSlow; this.SkillCount++;
                AcquiredSkills.Add(SkillKind.kSlow);
                Debug.Log("슬로우를 배웠습니다"); break;
            }
            break;
        }
        CheckOverlap(SkillKind.kSlow, SkillKind.kSlow);//추후 수정
    }
Пример #6
0
    public override void LearnDarknessSkill(Character.Stats monsterStats, Transform monster)
    {
        if (this.ActiveSkills == null)
        {
            this.ActiveSkills = new int[3];
        }
        if (this.AcquiredSkills == null)
        {
            this.AcquiredSkills = new List <int>();
        }
        ////랜덤으로 암속성 스킬 습득(패시브면 1번만 쓰고 사라짐 액티브면 저장)

        int randomSkillnum = Random.Range(0, 2);

        switch (randomSkillnum)
        {
        case 0:     // default Skills
            LearnDefaultSkill(monsterStats, monster);
            break;

        case 1:
            switch (Random.Range(SkillKind.kDarkNessTmp1, SkillKind.kDarkNessTmp1 + 1))    //추후 수정
            {
            //DarknessSkills - Active
            case SkillKind.kDarkNessTmp1:
                this.ActiveSkills[SkillCount] = SkillKind.kDarkNessTmp1; this.SkillCount++;
                AcquiredSkills.Add(SkillKind.kDarkNessTmp1);
                Debug.Log("어둠속성 스킬을 배웠습니다"); break;
            }
            break;
        }
        CheckOverlap(SkillKind.kDarkNessTmp1, SkillKind.kDarkNessTmp1); //추후 수정
    }
Пример #7
0
 public override void Volant(Character.Stats monsterstats)
 {
     //날쌘 : 이속, 공속+
     monsterstats.MoveSpeed  += 0.5f;
     monsterstats.ShootSpeed += 1f;
     monsterstats.CheckNegative();
 }
Пример #8
0
    //=======================================================================================
    // Muzzle Event
    //=======================================================================================
    #region
    private void Single(Transform[] axes, Character.Stats stats, Transform pos)
    {
        Bullet bullet = BulletPoolManager.Instance.Pop(stats).GetComponent <Bullet>();

        bullet.Fire(axes[2].position, stats.BulletSpeed,
                    Utility.LookAt(MainCamController.MousePosition, pos.position));
    }
 Character.Stats TasteToStats.tasteToStats(Food food)
 {
     Character.Stats statsToReturn = new Character.Stats();
     statsToReturn.MaxHP += food.foodTaste.umami;
     statsToReturn.AttackSpeed += food.foodTaste.bitter;
     statsToReturn.MovementSpeed += food.foodTaste.bitter;
     return statsToReturn;
 }
Пример #10
0
 public override void Sonic(Character.Stats monsterstats)
 {
     //소닉 : 이속, 공속+ 공격력 감소
     monsterstats.MoveSpeed  += 0.5f;
     monsterstats.ShootSpeed += 2f;
     monsterstats.Damage     -= 10;
     monsterstats.CheckNegative();
 }
Пример #11
0
 public override void Smash(Character.Stats monsterstats, Transform player)
 {
     //강격
     //isSmashed = true;
     //_player = player;
     //targetpos = player.transform.position;
     monsterstats.CheckNegative();
 }
Пример #12
0
    public void Set(Character.Stats stats, DamageAttribute attribute)
    {
        _bulletInfo.Damage    = stats.Damage;
        _range                = stats.Range;
        _bulletInfo.PushPower = stats.PushPower;
        _bulletInfo.Attribute = attribute;

        this.transform.localScale = Vector3.one * 0.1f * _bulletInfo.Damage;
    }
 Character.Stats TasteToStats.tasteToStats(Food food)
 {
     Character.Stats statsToReturn = new Character.Stats();
     statsToReturn.MaxHP += food.foodTaste.umami;
     statsToReturn.CurrHP += food.foodTaste.spicy;
     statsToReturn.AttackDamage += food.foodTaste.spicy;
     statsToReturn.AttackSpeed += food.foodTaste.spicy;
     statsToReturn.MovementSpeed += food.foodTaste.spicy;
     return statsToReturn;
 }
Пример #14
0
 public override void Giant(Character.Stats monsterstats, Transform monster)
 {
     //거대한 : 이속,공속 - 몸크기+ 체력+
     monsterstats.MoveSpeed       -= 0.5f;
     monsterstats.ShootSpeed       = monsterstats.ShootSpeed * 0.5f;
     monsterstats.HeatPoint       += 50;
     monsterstats.MaxHeatPoint    += 50;
     monster.transform.localScale += new Vector3(0.5f, 0.5f, 0.5f);
     monsterstats.CheckNegative();
 }
Пример #15
0
 public override void TwiceAttack(Character.Stats monsterstats)
 {
     //난한번에 두번때려
     Debug.Log(monsterstats.Damage);
     // _playerController.Damaged(Vector3.zero, monsterstats.Damage, StatusEffectKind.kNoStatusEffect);
     Debug.Log("원펀치");
     // _playerController.Damaged(Vector3.zero, monsterstats.Damage, StatusEffectKind.kNoStatusEffect);
     Debug.Log("투펀치");
     monsterstats.CheckNegative();
 }
Пример #16
0
    public static void SpawnCharacter(Character.Type characterType, BattleHandler.LanePosition lanePosition,
                                      bool isPlayerTeam, Character.Stats stats)
    {
        Transform characterTransform = Object.Instantiate(GameAssets.i.pfCharacterBattle,
                                                          GetPosition(lanePosition, isPlayerTeam), Quaternion.identity);
        CharacterBattle characterBattle = characterTransform.GetComponent <CharacterBattle>();

        characterBattle.Setup(characterType, lanePosition, GetPosition(lanePosition, isPlayerTeam), isPlayerTeam,
                              stats);
        _instance.characterBattleList.Add(characterBattle);
    }
Пример #17
0
    public void Fire(Character.Stats monsterstats, Transform monster)
    {
        this.gameObject.SetActive(true);
        _monsterstats = monsterstats;
        //총알세팅
        _range                = monsterstats.Range;
        _bulletInfo.Damage    = _monsterstats.Damage;
        _bulletInfo.PushPower = _monsterstats.PushPower;
        _bulletInfo.Attribute = DamageAttribute.FREEZING;

        _isFired = true;
        StartCoroutine(FireBullet(_bulletNum, monster));
    }
Пример #18
0
    public GameObject Pop(Character.Stats stats)
    {
        GameObject bullet = _bullets.Count == 0 ? SupplyBullet() : _bullets[0];

        _bullets.RemoveAt(0);

        // 기초 세팅
        // 마테리얼 임시 적용
        DamageAttribute ba = _bulletAttributeMgr.GetAttribute();

        bullet.GetComponent <Bullet>().Set(stats, ba);
        bullet.GetComponent <SpriteRenderer>().color = _AtributeColors[(int)ba];
        return(bullet);
    }
Пример #19
0
            /// <summary>
            /// Applies the party's set of enhancements to itsself.
            /// </summary>
            public static void applyEnhancements(Party party)
            {
                foreach(Enhancement enh in party.equippedEnhancements) {
                    if(enh == null) continue;

                    Character.Stats allStatDelta = new Character.Stats();
                    if(enh == Enhancements.mhp_plus_100) allStatDelta.mhp = 100;
                    if(enh == Enhancements.str_plus_10) allStatDelta.strength = 10;

                    if(enh == Enhancements.premonition) party.enhUnsurprisable = true;

                    //in case we need to apply something to each character
                    applyToEachCharacter(party, allStatDelta);
                }
            }
Пример #20
0
    public void CalcStats(ref Character.Stats currentStats, ref float hp, ref float armor, CharacterInfo info)
    {
        for (int i = 0; i < 3; i++)
        {
            if (equipment[i] != null && equipment[i].type == info.loadoutSlotType[i])
            {
                currentStats += equipment[i].rawStats;
            }
        }

        for (int i = 0; i < 3; i++)
        {
            if (equipment[i] != null && equipment[i].type == info.loadoutSlotType[i])
            {
                equipment[i].effect.CalcStats(ref currentStats, ref hp, ref armor);
            }
        }
    }
Пример #21
0
    public override void LearnKingSlimeSkill(Character.Stats monsterStats, Transform monster)
    {
        if (this.ActiveSkills == null)
        {
            this.ActiveSkills = new int[4] {
                -1, -1, -1, -1
            }
        }
        ;
        if (this.AcquiredSkills == null)
        {
            this.AcquiredSkills = new List <int>();
        }

        for (int i = 0; i < 4; i++)
        {
            this.ActiveSkills[i] = i; this.SkillCount++;
            AcquiredSkills.Add(i);
        }
    }
Пример #22
0
    public override void LearnFlameSkill(Character.Stats monsterStats, Transform monster)
    {
        if (this.ActiveSkills == null)
        {
            this.ActiveSkills = new int[3] {
                -1, -1, -1
            }
        }
        ;
        if (this.AcquiredSkills == null)
        {
            this.AcquiredSkills = new List <int>();
        }
        ////랜덤으로 화염스킬 습득(패시브면 1번만 쓰고 사라짐 액티브면 저장)
        ///
        int randomSkillnum = Random.Range(0, 2);

        switch (randomSkillnum)
        {
        case 0:     // default Skills
            LearnDefaultSkill(monsterStats, monster);
            break;

        case 1:
            switch (Random.Range(SkillKind.kLava, SkillKind.kFlameColak + 1))
            {
            //FlameSkills - Active
            case SkillKind.kLava:
                this.ActiveSkills[SkillCount] = SkillKind.kLava; this.SkillCount++;
                AcquiredSkills.Add(SkillKind.kLava);
                Debug.Log("라바를 배웠습니다"); break;

            case SkillKind.kFlameColak:
                this.ActiveSkills[SkillCount] = SkillKind.kFlameColak; this.SkillCount++;
                AcquiredSkills.Add(SkillKind.kFlameColak);
                Debug.Log("호염망토를 배웠습니다"); break;
            }
            break;
        }
        CheckOverlap(SkillKind.kLava, SkillKind.kFlameColak);
    }
Пример #23
0
 public override void Healty(Character.Stats monsterstats)
 {
     //건강한 : 채력+
     monsterstats.HeatPoint += 5;
     monsterstats.CheckNegative();
 }
Пример #24
0
 //King Slime
 public virtual void LearnKingSlimeSkill(Character.Stats monsterStats, Transform monster)
 {
 }
Пример #25
0
 public override void HeadHunter(Character.Stats monsterstats, PlayerController _playerController)     //헤드헌터
 //나중에 플레이어 or 히어로로 바꿔야함
 //_playerController.Damaged(Vector3.zero, monsterstats.Damage * 2, StatusEffectKind.kNoStatusEffect);
 {
     monsterstats.CheckNegative();
 }
Пример #26
0
 public virtual void LateCalcStats(ref Character.Stats stats, ref float hp, ref float armor)
 {
 }
Пример #27
0
 public void SetStatsUI()
 {
     Character.Stats stats = _playerController.GetStats();
     _BasicCanvas.transform.Find("Common/Status/MaxHeatPoint/HeatPointBar").GetComponent <HeatPointBar>().Init(stats);
     _BasicCanvas.transform.Find("Common/Status/MaxManaPoint/ManaPointBar").GetComponent <ManaPointBar>().Init(stats);
 }
Пример #28
0
 //Darkness Skills
 public virtual void LearnDarknessSkill(Character.Stats monsterStats, Transform monster)
 {
 }
Пример #29
0
    public void Setup(Character.Type characterType, BattleHandler.LanePosition lanePosition, Vector3 startingPosition, bool isPlayerTeam, Character.Stats stats)
    {
        this.characterType    = characterType;
        this.lanePosition     = lanePosition;
        this.startingPosition = startingPosition;
        this.isPlayerTeam     = isPlayerTeam;
        this.stats            = stats;

        hitUnitAnimType    = GameAssets.UnitAnimTypeEnum.dBareHands_Hit;
        slideLeftUnitAnim  = UnitAnim.GetUnitAnim("dBareHands_SlideLeft");
        slideRightUnitAnim = UnitAnim.GetUnitAnim("dBareHands_SlideRight");

        Vector3 healthWorldBarLocalPosition = new Vector3(0, 10);

        switch (characterType)
        {
        case Character.Type.Player:
            material.mainTexture = GameAssets.i.t_Player;
            playerBase.GetAnimatedWalker().SetAnimations(GameAssets.UnitAnimTypeEnum.dSwordTwoHandedBack_Idle, GameAssets.UnitAnimTypeEnum.dSwordTwoHandedBack_Walk, 1f, 1f);
            attackUnitAnimType = GameAssets.UnitAnimTypeEnum.dSwordTwoHandedBack_Sword;

            if (GameData.GetCharacter(Character.Type.Player).hasFtnDewArmor)
            {
                Texture2D newSpritesheetTexture = new Texture2D(material.mainTexture.width, material.mainTexture.height, TextureFormat.ARGB32, true);
                newSpritesheetTexture.SetPixels((material.mainTexture as Texture2D).GetPixels());
                Color[] ftnDewArmorPixels = GameAssets.i.t_FtnDewArmor.GetPixels(0, 0, 512, 128);
                newSpritesheetTexture.SetPixels(0, 256, 512, 128, ftnDewArmorPixels);
                newSpritesheetTexture.Apply();
                material.mainTexture = newSpritesheetTexture;
            }

            if (GameData.GetCharacter(Character.Type.Player).hasSwordThousandTruths)
            {
                Texture2D newSpritesheetTexture = new Texture2D(material.mainTexture.width, material.mainTexture.height, TextureFormat.ARGB32, true);
                newSpritesheetTexture.SetPixels((material.mainTexture as Texture2D).GetPixels());
                Color[] swordThousandTruthsPixels = GameAssets.i.t_SwordThousandTruths.GetPixels(0, 0, 128, 128);
                newSpritesheetTexture.SetPixels(0, 128, 128, 128, swordThousandTruthsPixels);
                newSpritesheetTexture.Apply();
                material.mainTexture = newSpritesheetTexture;
            }
            break;

        case Character.Type.Tank:
            material.mainTexture = GameAssets.i.t_Tank;
            playerBase.GetAnimatedWalker().SetAnimations(GameAssets.UnitAnimTypeEnum.dSwordShield_Idle, GameAssets.UnitAnimTypeEnum.dSwordShield_Walk, 1f, 1f);
            attackUnitAnimType   = GameAssets.UnitAnimTypeEnum.dSwordShield_Attack;
            transform.localScale = Vector3.one * 1.2f;
            break;

        case Character.Type.Healer:
            material.mainTexture = GameAssets.i.t_Healer;
            playerBase.GetAnimatedWalker().SetAnimations(GameAssets.UnitAnimTypeEnum.dDualDagger_Idle, GameAssets.UnitAnimTypeEnum.dDualDagger_Walk, 1f, 1f);
            attackUnitAnimType   = GameAssets.UnitAnimTypeEnum.dDualDagger_Attack;
            transform.localScale = Vector3.one * 1.0f;
            break;

        case Character.Type.EvilMonster:
        case Character.Type.EvilMonster_2:
        case Character.Type.EvilMonster_3:
            material.mainTexture = GameAssets.i.t_EvilMonster;
            playerBase.GetAnimatedWalker().SetAnimations(GameAssets.UnitAnimTypeEnum.dBareHands_Idle, GameAssets.UnitAnimTypeEnum.dBareHands_Walk, 1f, 1f);
            attackUnitAnimType            = GameAssets.UnitAnimTypeEnum.dBareHands_Punch;
            transform.localScale          = Vector3.one * 1.8f;
            healthWorldBarLocalPosition.y = 9.5f;
            break;

        case Character.Type.Enemy_MinionOrange:
            material.mainTexture = GameAssets.i.t_EnemyMinionOrange;
            playerBase.GetAnimatedWalker().SetAnimations(GameAssets.UnitAnimTypeEnum.dMinion_Idle, GameAssets.UnitAnimTypeEnum.dMinion_Walk, 1f, 1f);
            attackUnitAnimType = GameAssets.UnitAnimTypeEnum.dMinion_Attack;
            break;

        case Character.Type.Enemy_MinionRed:
            material.mainTexture = GameAssets.i.t_EnemyMinionRed;
            playerBase.GetAnimatedWalker().SetAnimations(GameAssets.UnitAnimTypeEnum.dMinion_Idle, GameAssets.UnitAnimTypeEnum.dMinion_Walk, 1f, 1f);
            attackUnitAnimType = GameAssets.UnitAnimTypeEnum.dMinion_Attack;
            break;

        case Character.Type.Enemy_Ogre:
            material.mainTexture = GameAssets.i.t_Ogre;
            playerBase.GetAnimatedWalker().SetAnimations(GameAssets.UnitAnimTypeEnum.dOgre_Idle, GameAssets.UnitAnimTypeEnum.dOgre_Walk, 1f, 1f);
            attackUnitAnimType            = GameAssets.UnitAnimTypeEnum.dOgre_Attack;
            hitUnitAnimType               = UnitAnimType.GetUnitAnimType("dOgre_Hit");
            slideLeftUnitAnim             = UnitAnim.GetUnitAnim("dOgre_SlideLeft");
            slideRightUnitAnim            = UnitAnim.GetUnitAnim("dOgre_SlideRight");
            healthWorldBarLocalPosition.y = 12;
            break;

        case Character.Type.Enemy_Zombie:
            material.mainTexture = GameAssets.i.t_Zombie;
            playerBase.GetAnimatedWalker().SetAnimations(GameAssets.UnitAnimTypeEnum.dZombie_Idle, GameAssets.UnitAnimTypeEnum.dZombie_Walk, 1f, 1f);
            attackUnitAnimType = GameAssets.UnitAnimTypeEnum.dZombie_Attack;
            break;
        }
        transform.Find("Body").GetComponent <MeshRenderer>().material = material;

        healthSystem = new HealthSystem(stats.healthMax);
        healthSystem.SetHealthAmount(stats.health);
        healthWorldBar = new World_Bar(transform, healthWorldBarLocalPosition, new Vector3(12 * (stats.healthMax / 100f), 1.6f), Color.grey, Color.red, healthSystem.GetHealthPercent(), UnityEngine.Random.Range(1000, 2000), new World_Bar.Outline {
            color = Color.black, size = .6f
        });
        healthSystem.OnHealthChanged += HealthSystem_OnHealthChanged;
        healthSystem.OnDead          += HealthSystem_OnDead;

        PlayIdleAnim();
    }
Пример #30
0
 public void UseSpell(Character.Stats stats)
 {
     _muzzle(WepaonAxis, stats, this.transform);
 }
Пример #31
0
 public override void Sharp(Character.Stats monsterstats)
 {
     //날카로운 : 데미지+
     monsterstats.Damage += 5;
     monsterstats.CheckNegative();
 }
Пример #32
0
 public override void Haste(Character.Stats monsterstats)
 {
     //신속한 : 이속+
     monsterstats.MoveSpeed += 0.5f;
     monsterstats.CheckNegative();
 }
Пример #33
0
    void OnGUI()
    {
        Type targetType;
        charScript = AssetDatabase.LoadAssetAtPath<MonoScript>("Assets/Scripts/Character/Character.cs");
        if (jsonSerializer == null)
        {
            Start();
        }
        targetType = charScript.GetClass();
        EditorGUILayout.BeginVertical(EditorStyles.helpBox);
        EditorGUILayout.LabelField("id: ", database.Count.ToString());

        if (reorderableList == null)
        {
            reorderableList = new ReorderableList(charAbilities, typeof(int),
                false, true, true, true);

            reorderableList.drawElementCallback =
                (Rect rect, int index, bool isActive, bool isFocused) => {
                    var element = reorderableList.list[index];
                    rect.y += 2;
                    reorderableList.list[index] = EditorGUI.IntField(
                        new Rect(rect.x, rect.y, 60, EditorGUIUtility.singleLineHeight),
                        (int)element);
                };
        }
        reorderableList.DoLayoutList();

        foreach (FieldInfo info in targetType.GetFields(flags))
        {
            Type fieldType = info.FieldType;
            if (fieldType == typeof(int))
            {
                info.SetValue(tempChar, EditorGUILayout.IntField(info.Name, (int)info.GetValue(tempChar)));
            }
            else if (fieldType == typeof(string))
            {
                info.SetValue(tempChar, EditorGUILayout.TextField(info.Name, (string)info.GetValue(tempChar)));
            }
            else if (fieldType == typeof(float))
            {
                info.SetValue(tempChar, EditorGUILayout.FloatField(info.Name, (float)info.GetValue(tempChar)));
            }
            else if (fieldType == typeof(Character.Stats)) //struct
            {
                EditorGUILayout.Space();
                EditorGUILayout.BeginVertical(EditorStyles.helpBox);
                if (tempStruct == null)
                {
                    tempStruct = new Character.Stats();
                    info.SetValue(tempChar, (Character.Stats)tempStruct);
                }

                foreach (FieldInfo infoInStruct in fieldType.GetFields(flags))
                {
                    Type fieldTypeInStruct = infoInStruct.FieldType;

                    if (fieldTypeInStruct == typeof(float))
                    {
                        infoInStruct.SetValue(tempStruct, EditorGUILayout.FloatField(infoInStruct.Name, (float)infoInStruct.GetValue(info.GetValue(tempChar)) ));
                    }
                }

                info.SetValue(tempChar, (Character.Stats)tempStruct);
                EditorGUILayout.EndVertical();
                EditorGUILayout.Space();
            }
            else if (fieldType == typeof(TasteToStats))//object
            {
                var dirPath = new DirectoryInfo("Assets/Scripts/Character/TasteTranslation");
                FileInfo[] fileInfo = dirPath.GetFiles();
                List<string> fileNames = new List<string>();
                for (int i = 0; i < fileInfo.Length; i++)
                {
                    if (!fileInfo[i].Name.Contains("meta") && !fileInfo[i].Name.Equals("TasteToStats.cs"))
                    {
                        fileNames.Add(fileInfo[i].Name);
                    }
                }
                tasteToStats = EditorGUILayout.Popup("Ability:", tasteToStats, fileNames.ToArray());
                MonoScript derp = AssetDatabase.LoadAssetAtPath<MonoScript>("Assets/Scripts/Character/TasteTranslation/"+ fileNames[tasteToStats]);
                info.SetValue(tempChar, Activator.CreateInstance(derp.GetClass()));
            }
            else if (fieldType == typeof(List<int>))
            {
                info.SetValue(tempChar, charAbilities);
            }

        }

        EditorGUILayout.EndVertical();

        if (GUILayout.Button("submit"))
        {
            textWriter = new StreamWriter(Application.dataPath + itemFileName);
            jsonWriter = new JsonTextWriter(textWriter);
            database.Add(tempChar);
            String text = JsonConvert.SerializeObject(database, Formatting.Indented, new JsonSerializerSettings
            {
                TypeNameHandling = TypeNameHandling.Objects,
                TypeNameAssemblyFormat = System.Runtime.Serialization.Formatters.FormatterAssemblyStyle.Simple
            });
            textWriter.Write(text);

            textWriter.Close();
            textWriter.Dispose();
            jsonWriter.Close();

            tempChar = new Character();
            tempStruct = null;
            reorderableList = null;
            charAbilities = new List<int>();
        }
    }
Пример #34
0
    protected void LearnDefaultSkill(Character.Stats monsterStats, Transform monster)
    {
        switch (Random.Range(0, SkillKind.defaultSkillCount))
        {
        //DefaultSkills - Passive
        case SkillKind.kHaste:
            Haste(monsterStats);
            AcquiredSkills.Add(SkillKind.kHaste);
            Debug.Log("신속함을 배웠습니다"); break;

        case SkillKind.kRapid:
            Rapid(monsterStats);
            AcquiredSkills.Add(SkillKind.kRapid);
            Debug.Log("날렵한을 배웠습니다"); break;

        case SkillKind.kSharp:
            Sharp(monsterStats);
            AcquiredSkills.Add(SkillKind.kSharp);
            Debug.Log("날카로움를 배웠습니다"); break;

        case SkillKind.kHealty:
            Healty(monsterStats);
            AcquiredSkills.Add(SkillKind.kHealty);
            Debug.Log("건강함을 배웠습니다"); break;

        case SkillKind.kVolant:
            Volant(monsterStats);
            AcquiredSkills.Add(SkillKind.kVolant);
            Debug.Log("날쌘을 배웠습니다"); break;

        case SkillKind.kSonic:
            Sonic(monsterStats);
            AcquiredSkills.Add(SkillKind.kSonic);
            Debug.Log("소닉을 배웠습니다"); break;

        case SkillKind.kSuperArmor:
            SuperArmor(monsterStats, monster);
            AcquiredSkills.Add(SkillKind.kSuperArmor);
            Debug.Log("슈퍼아머를 배웠습니다"); break;

        case SkillKind.kGiant:
            Giant(monsterStats, monster);
            AcquiredSkills.Add(SkillKind.kGiant);
            Debug.Log("거대한을 배웠습니다"); break;

        //DefaultSkills - Active
        case SkillKind.kHeadHunter:
            this.ActiveSkills[SkillCount] = SkillKind.kHeadHunter; this.SkillCount++;
            AcquiredSkills.Add(SkillKind.kHeadHunter);
            Debug.Log("머리노리기를 배웠습니다"); break;

        case SkillKind.kSmash:
            this.ActiveSkills[SkillCount] = SkillKind.kSmash; this.SkillCount++;
            AcquiredSkills.Add(SkillKind.kSmash);
            Debug.Log("강격을 배웠습니다"); break;

        case SkillKind.kTwiceAttack:
            this.ActiveSkills[SkillCount] = SkillKind.kTwiceAttack; this.SkillCount++;
            AcquiredSkills.Add(SkillKind.kTwiceAttack);
            Debug.Log("난 한번에 두번 때려를 배웠습니다"); break;
        }
    }