private Sprite UnitTableCell(string label, UnitSpecies species, Sprite sprite) { EditorGUILayout.LabelField(label, EditorStyles.boldLabel); var newSprite = (Sprite)EditorGUILayout.ObjectField("Спрайт", sprite, typeof(Sprite), false); EditorGUILayout.BeginHorizontal(); GUILayout.Label("Урон"); UnitScript.UnitsCharacteristics[species].LifeDamage = EditorGUILayout.IntField(UnitScript.UnitsCharacteristics[species].LifeDamage); GUILayout.Label("Сбор"); UnitScript.UnitsCharacteristics[species].AntiBodyDamage = EditorGUILayout.IntField(UnitScript.UnitsCharacteristics[species].AntiBodyDamage); EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); GUILayout.Label("Скорость"); UnitScript.UnitsCharacteristics[species].Speed = EditorGUILayout.IntField(UnitScript.UnitsCharacteristics[species].Speed); GUILayout.Label("Цена"); UnitScript.UnitsCharacteristics[species].Cost = EditorGUILayout.IntField(UnitScript.UnitsCharacteristics[species].Cost); EditorGUILayout.EndHorizontal(); GUILayout.Space(10); return(newSprite); }
public void Initialize(UnitSpecies unit, GameObject threat) { GetComponent <SpriteRenderer>().sprite = unit switch { UnitSpecies.Macrophage => macrophageSprite, UnitSpecies.DendriticCell => dendriticCellSprite, UnitSpecies.Neutrophil => neutrophilSprite, UnitSpecies.NkCell => nKCellSprite, UnitSpecies.Killer => tKillerSprite, _ => throw new ArgumentOutOfRangeException(nameof(unit), unit, null) }; UnitData = UnitsCharacteristics[unit]; targetThreat = threat; var threatScript = targetThreat.GetComponent <Threat>(); threatScript.AttackUnits.Add(gameObject); path = threatScript.PathData.PathPoints.GetEnumerator(); if (path.MoveNext()) { currentTarget = path.Current; } initialized = true; } }
// 유닛 생성 시스템 public Unit(UnitAlliance alliance, UnitSpecies species = UnitSpecies.NULL, int lv = 1) { Seed = UnityEngine.Random.Range(0, 10000); Alliance = alliance; if (species == UnitSpecies.NULL) { Species = (UnitSpecies)(Seed % 5); // 0 ~ 3 } else { Species = species; } Modifier = (UnitModifier)(Seed % 6); Name = Data.GetRandomName(Seed); SpriteNumber = Data.SpeciesToSpriteNumbers[Species][Seed % Data.SpeciesToSpriteNumbers[Species].Count]; InColor = new Color(0.9f, 0.9f, 0.9f); OutColor = Color.clear; Common.Command.AddSkill(this, new Skills.Move.Pawn()); Common.Command.AddSkill(this, new Skills.Basic.Fireball()); Common.Command.AddSkill(this, new Skills.Basic.Heal()); Common.Command.AddSkill(this, new Skills.Basic.Scratch()); // 인간형 초기 스텟 if (Species == UnitSpecies.Human) { MaxHP = 35; Strength = 10; Agility = 10; Mobility = 3; CriRate = 10; } else if (Species == UnitSpecies.SmallBeast) { MaxHP = 20; Strength = 12; Agility = 11; Mobility = 4; CriRate = 11; } else if (Species == UnitSpecies.MediumBeast) { MaxHP = 30; Strength = 12; Agility = 10; Mobility = 3; CriRate = 11; } else if (Species == UnitSpecies.LargeBeast) { MaxHP = 50; Strength = 15; Agility = 12; Mobility = 2; CriRate = 11; } Level = lv; CurEXP = 0; NextEXP = 10 * Level * (Level + 5); }