public MonsterSpawnSpot() { id = ""; monster = null; interval = 0; deadTime = 0; count = 0; position = new Position (0, 0); }
public MonsterData(Int32 monsterNo, MonsterData data) { MonsterNo = monsterNo; RoundId = data.RoundId; MonsterId = data.MonsterId; AppearType = data.AppearType; Prob = data.Prob; KillReward_PlayerExp = data.KillReward_PlayerExp; KillReward_CharacterExp = data.KillReward_CharacterExp; KillReward_ResourceId = data.KillReward_ResourceId; KillReward_Amount = data.KillReward_Amount; Base = MonsterBook.Find(MonsterId); }
public void Update() { if (null != monster && MonsterData.State.Die == monster.state) { monster = null; deadTime = GameManager.Instance.currentTurn; } if (Player.Instance.sight > Vector2.Distance (position, Player.Instance.position)) { return; } if (null == monster && Player.Instance.position != position && (deadTime + interval < GameManager.Instance.currentTurn || 0 == deadTime)) { monster = MonsterManager.Instance.CreateInstance (id); monster.SetPosition(position); } }
static public MonsterData GetMonsterDataFromNetwork(int id) { string message = CreateMessageGetMonsterDataFromNetwork(id); string result = SocketClient.send(message); JObject jo = (JObject)JsonConvert.DeserializeObject(result); MonsterData monsterData = new MonsterData(); if (jo["type"].ToString() == "monster") { monsterData.id = Int32.Parse(jo["body"]["id"].ToString()); monsterData.name = jo["body"]["name"].ToString(); monsterData.hp = float.Parse(jo["body"]["hp"].ToString()); monsterData.attack = float.Parse(jo["body"]["attack"].ToString()); monsterData.defence = float.Parse(jo["body"]["defence"].ToString()); monsterData.gold = Int32.Parse(jo["body"]["gold"].ToString()); } return monsterData; }
static public MonsterData GetMonsterData(int id) { string query = "SELECT * FROM MONSTER where id = " + id; reader = ExecuteQuery(query); MonsterData monster = new MonsterData(); if (reader.Read()) { monster.id = reader.GetInt32(0); monster.name = reader.GetString(1); monster.hp = reader.GetFloat(2); monster.attack = reader.GetFloat(3); monster.defence = reader.GetFloat(4); monster.gold = reader.GetInt32(5); } reader.Dispose(); return monster; }
void Awake() { if (instance == null) { instance = this; DontDestroyOnLoad(gameObject); playerData = Resources.Load("Data/PlayerData")as PlayerData; monsterData = Resources.Load("Data/MonsterData")as MonsterData; stageData = Resources.Load("Data/StageData")as StageData; equipmentData = Resources.Load("Data/EquipmentData")as EquipmentData; weaponData = Resources.Load("Data/WeaponData")as WeaponData; } else { Destroy(gameObject); } }
public MonsterData CreateInstance() { MonsterData data = new MonsterData (); data.info = this; data.name = name; data.attack = attack; data.speed = speed; data.defense = defense; data.health = new Util.AutoRecoveryInt<Util.TurnCounter>(); data.health.recovery = health.recovery; data.health.interval = health.interval; data.health.value = maxHealth; data.health.max = maxHealth; data.reward = reward.CreateInstance (); for (int i=0; i<equipments.Length; i++) { if(null != equipments[i]) { data.EquipItem(equipments[i].CreateInstance() as EquipmentItemData, (Character.EquipPart)i); } } return data; }
// Start is called before the first frame update void Start() { enemiesInRange = new List <GameObject>(); lastShotTime = Time.time; monsterData = gameObject.GetComponentInChildren <MonsterData>(); }
public void init(UnitData md, TranscendData td, int[] tLevel, Player player) { _player = player; spDamageEffect.cachedGameObject.SetActive(false); _state = 0; leftNum = 0; lastActiveSkillUseSlotIndex = -1; // unitSlot.activeSkillState = STATE_ACTIVE_SKILL_COOLTIME; mon = null; blockThis = false; isClicked = false; isLocked = false; unitData = md; transcendData = td; transcendLevel = tLevel; tfUnitName.text = md.name; #if UNITY_EDITOR // Debug.Log(unitData.resource); #endif monsterData = GameManager.info.monsterData[unitData.resource]; // unitSlot.useSp = unitData.sp; // unitSlot.useSp -= (unitSlot.useSp * _player.summonSpPercent(unitData)); if (player != null) { tfUseSp.text = Mathf.RoundToInt(unitSlot.useSp / player.maxSp * 100.0f) + ""; //Mathf.CeilToInt(unitSlot.useSp - 0.4f) + ""; } else { tfUseSp.text = Mathf.RoundToInt(unitSlot.useSp / _player.maxSp * 100.0f) + ""; //Mathf.CeilToInt(unitSlot.useSp - 0.4f) + ""; } #if UNITY_EDITOR Debug.LogError("***** " + slotIndex + " - icon: " + monsterData.resource); #endif MonsterData.setUnitIcon(monsterData, spPetIcon, iconDepth); spPetIcon.MakePixelPerfect(); spPetIcon.width = 102; // if( unitData.cooltime <= 0.1f) unitSlot.maxCoolTime = 0.0f; // else unitSlot.maxCoolTime = unitData.cooltime; spBackground.spriteName = RareType.getRareBgSprite(md.rare); spFrameBorder.spriteName = RareType.getRareLineSprite(md.rare); updateSummonNum(); goActiveSkillContainer.SetActive(false); spHpBar.cachedGameObject.SetActive(false); tfUseSp.enabled = true; resetCoolTime(true); resetActiveSkillCoolTime(); }
private void OnPushedBaseMonsterIcon(MonsterData tappedMonsterData) { this.ClosePanel(true); }
// Construct with quest data public QuestMonster(QuestData.CustomMonster qm) : base() { Game game = Game.Get(); cMonster = qm; // Get base derived monster type MonsterData baseObject = null; // Check for content data monster defined as base if (game.cd.monsters.ContainsKey(qm.baseMonster)) { // Set base monster type derivedType = qm.baseMonster; baseObject = game.cd.monsters[qm.baseMonster]; } // If name not set use base type if (!qm.monsterName.KeyExists() && baseObject != null) { name = baseObject.name; } else { name = qm.monsterName; } // Initialise sets sets = new List <string>(); // define data sectionName = qm.sectionName; priority = 0; // Read traits from quest data or base type traits = qm.traits; if (traits.Length == 0 && baseObject != null) { traits = baseObject.traits; } // Read info from quest data or base type info = new StringKey(null, EventManager.OutputSymbolReplace(qm.info.Translate()), false); if (!qm.info.KeyExists() && baseObject != null) { info = baseObject.info; } image = qm.GetImagePath(); if (image.Length == 0) { if (baseObject != null) { image = baseObject.image; } } else { image = Path.GetDirectoryName(game.quest.qd.questPath) + "/" + image; } // Read placement image from quest data or base type imagePlace = qm.GetImagePlacePath(); if (imagePlace.Length == 0) { if (baseObject != null) { imagePlace = baseObject.image; } else { imagePlace = image; } } else { imagePlace = Path.GetDirectoryName(game.quest.qd.questPath) + "/" + imagePlace; } // Read activations from quest data or base type activations = qm.activations; if (activations.Length == 0 && baseObject != null) { useMonsterTypeActivations = true; } healthBase = qm.healthBase; healthPerHero = qm.healthPerHero; if (!qm.healthDefined && baseObject != null) { healthBase = baseObject.healthBase; healthPerHero = baseObject.healthPerHero; } horror = qm.horror; if (!qm.horrorDefined && baseObject != null) { horror = baseObject.horror; } awareness = qm.awareness; if (!qm.awarenessDefined && baseObject != null) { awareness = baseObject.awareness; } }
// Activate a monster virtual public bool ActivateMonster(Quest.Monster m) { List <ActivationData> adList = new List <ActivationData>(); Game game = Game.Get(); bool customActivations = false; MonsterData md = m.monsterData; // Find out of this monster is quest specific QuestMonster qm = md as QuestMonster; if (qm != null) { // Get the base monster type if (game.cd.monsters.ContainsKey(qm.derivedType)) { md = game.cd.monsters[qm.derivedType]; } // Determine if the monster has quest specific activations customActivations = !qm.useMonsterTypeActivations; } // A monster with quest specific activations if (customActivations) { if (!qm.useMonsterTypeActivations) { adList = new List <ActivationData>(); // Get all custom activations foreach (string s in qm.activations) { // Find the activation in quest data if (game.quest.qd.components.ContainsKey("Activation" + s) && game.quest.vars.Test((game.quest.qd.components["Activation" + s] as QuestData.Activation).tests) ) { adList.Add(new QuestActivation(game.quest.qd.components["Activation" + s] as QuestData.Activation)); } // Otherwise look for the activation in content data else if (game.cd.activations.ContainsKey("MonsterActivation" + s)) { adList.Add(game.cd.activations["MonsterActivation" + s]); } else // Invalid activation { game.quest.log.Add(new Quest.LogEntry("Warning: Unable to find activation: " + s + " for monster type: " + m.monsterData.sectionName, true)); } } } } else // Content Data activations only { // Find all possible activations foreach (KeyValuePair <string, ActivationData> kv in game.cd.activations) { // Is this activation for this monster type? (replace "Monster" with "MonsterActivation", ignore specific variety) if (kv.Key.IndexOf("MonsterActivation" + md.sectionName.Substring("Monster".Length)) == 0) { adList.Add(kv.Value); } } // Search for additional common activations foreach (string s in md.activations) { if (game.cd.activations.ContainsKey("MonsterActivation" + s)) { adList.Add(game.cd.activations["MonsterActivation" + s]); } else { ValkyrieDebug.Log("Warning: Unable to find activation: " + s + " for monster type: " + md.sectionName); } } } // Check for no activations if (adList.Count == 0) { ValkyrieDebug.Log("Error: Unable to find any activation data for monster type: " + md.name); Application.Quit(); } // No current activation if (m.currentActivation == null) { // Pick a random activation ActivationData activation = adList[Random.Range(0, adList.Count)]; m.NewActivation(activation); } // MoM has a special activation if (game.gameType is MoMGameType) { m.masterStarted = true; new ActivateDialogMoM(m); return(false); } // If no minion activation just do master if (m.currentActivation.ad.minionActions.fullKey.Length == 0) { m.minionStarted = true; m.masterStarted = true; new ActivateDialog(m, true, true); return(false); } // If no master activation just do minion if (m.currentActivation.ad.masterActions.fullKey.Length == 0) { m.minionStarted = true; m.masterStarted = true; new ActivateDialog(m, false, true); return(false); } // Random pick Minion or master (both available) m.minionStarted = Random.Range(0, 2) == 0; // If order specificed then use that instead if (m.currentActivation.ad.masterFirst) { m.minionStarted = false; } if (m.currentActivation.ad.minionFirst) { m.minionStarted = true; } // Master is opposite of minion as this is the first activation m.masterStarted = !m.minionStarted; // Create activation window new ActivateDialog(m, m.masterStarted); // More groups unactivated return(false); }
// Use this for initialization void Start() { monsterData = GameObject.FindGameObjectWithTag("Player").GetComponent <MonsterData>(); AgeText.text = monsterData.age.ToString(); WeightText.text = monsterData.weight.ToString(); }
public void SetCfg(MonsterData cfg) { m_monsterData = cfg; m_monsterId = (uint)m_monsterData.id;//monster,mercenary是服务器同步下来,dummy是本地赋值 level = (byte)cfg.level; hp = (uint)cfg.hpBase; curHp = hp; //if (LanguageData.dataMap.ContainsKey(m_monsterData.nameCode))头上显示名字 //{ // name = LanguageData.dataMap[m_monsterData.nameCode].content; //} SetIntAttr("aiId", cfg.aiId); SetIntAttr("scaleRadius", cfg.scaleRadius); SetIntAttr("speed", cfg.speed); SetIntAttr("hpBase", cfg.hpBase); SetIntAttr("attackBase", cfg.attackBase); SetIntAttr("defenseBase", 0); SetIntAttr("hp", cfg.hpBase); SetIntAttr("atk", cfg.attackBase); SetIntAttr("def", 0); SetDoubleAttr("hitRate", cfg.extraHitRate * 0.0001f); SetDoubleAttr("critRate", cfg.extraCritRate * 0.0001f); SetDoubleAttr("trueStrikeRate", cfg.extraTrueStrikeRate * 0.0001f); SetDoubleAttr("antiDefenseRate", cfg.extraAntiDefenceRate * 0.0001f); SetDoubleAttr("defenceRate", cfg.extraDefenceRate * 0.0001f); SetDoubleAttr("missRate", cfg.missRate * 0.0001f); SetDoubleAttr("damageReduceRate", 0.0f); if (cfg.showHitAct > 0) { stateFlag = Mogo.Util.Utils.BitSet(stateFlag, 13); } }
public void SetDetail(int pid) { ConfigDataType type = DataCore.getDataType(pid); stars.gameObject.SetActive(true); object tObj = null; switch (type) { case ConfigDataType.Monster: tObj = Core.Data.monManager.getMonsterByNum(pid); MonsterData tMdata = tObj as MonsterData; if (tMdata != null) { lblName.text = tMdata.name; } AtlasMgr.mInstance.SetHeadSprite(spIcon, pid.ToString()); spIcon.spriteName = pid.ToString(); stars.SetStar(Core.Data.monManager.getMonsterByNum(pid).star); break; case ConfigDataType.Item: tObj = Core.Data.itemManager.getItemData(pid); ItemData tData = tObj as ItemData; if (tData.type == (int)ItemType.Stone) { stars.gameObject.SetActive(false); } if (tData != null) { lblName.text = tData.name; } spIcon.atlas = AtlasMgr.mInstance.itemAtlas; spIcon.spriteName = pid.ToString(); stars.SetStar(Core.Data.itemManager.getItemData(pid).star); break; case ConfigDataType.Equip: tObj = Core.Data.EquipManager.getEquipConfig(pid); EquipData eqData = tObj as EquipData; if (eqData != null) { lblName.text = eqData.name; } spIcon.atlas = AtlasMgr.mInstance.equipAtlas; spIcon.spriteName = pid.ToString(); stars.SetStar(Core.Data.EquipManager.getEquipConfig(pid).star); break; case ConfigDataType.Gems: tObj = Core.Data.gemsManager.getGemData(pid); GemData tGdata = tObj as GemData; if (tGdata != null) { lblName.text = tGdata.name; } spIcon.atlas = AtlasMgr.mInstance.commonAtlas; spIcon.spriteName = Core.Data.gemsManager.getGemData(pid).anime2D; stars.SetStar(Core.Data.gemsManager.getGemData(pid).star); break; case ConfigDataType.Frag: SoulData data = Core.Data.soulManager.GetSoulConfigByNum(pid); if (data != null) { lblName.text = data.name; } AtlasMgr.mInstance.SetHeadSprite(spIcon, data.updateId.ToString()); stars.SetStar(Core.Data.soulManager.GetSoulConfigByNum(pid).star); break; default: RED.LogError("reward item not found : " + pid); break; } if (pid == 110031) { lblName.text = Core.Data.stringManager.getString(10006); } spIcon.width = 65; spIcon.height = 65; }
public override void OnInspectorGUI() { //base.OnInspectorGUI(); Cell cell = (Cell)target; int t = cell.id; cell.id = EditorGUILayout.IntField("id", cell.id); if (cell.id > LoadResources.maxMonster || cell.id < (int)CellType.add_attack_10) { cell.id = t; } EditorGUILayout.PropertyField(m_Monster); EditorGUILayout.PropertyField(m_Item); if (t != cell.id) { if (cell.IsMonster()) { MonsterData m = Sql.GetMonsterData(cell.id); Monster monster = cell.GetComponent <Monster>(); monster.id = cell.id; monster.hpComponent.SetHp(m.hp); monster.characterName = m.name; monster.SetAttack(m.attack); monster.SetDefence(m.defence); monster.gold = m.gold; } else if (cell.IsItem()) { ItemData m = Sql.GetItemData(cell.id + 9); Item item = cell.GetComponent <Item>(); item.id = cell.id; item.addHp = m.addHp; item.itemName = m.name; item.addAttack = m.addAttack; item.addDefence = m.addDefence; item.addGold = m.addGold; } } if (t == cell.id) { return; } if (cell.id == (int)CellType.ROAD && t != (int)CellType.ROAD) { Color color = cell.GetComponent <SpriteRenderer>().color; cell.GetComponent <SpriteRenderer>().color -= new Color(0, 0, 0, color.a); } else if (cell.id != (int)CellType.ROAD && t == (int)CellType.ROAD) { Color color = cell.GetComponent <SpriteRenderer>().color; cell.GetComponent <SpriteRenderer>().color -= new Color(0, 0, 0, color.a - 1); } if (cell.IsMonster()) { cell.GetComponent <SpriteRenderer>().sprite = LoadResources.monsters[cell.id - 1]; } else if (cell.IsWall()) { cell.GetComponent <SpriteRenderer>().sprite = LoadResources.wall; } else if (cell.IsUpFloor()) { cell.GetComponent <SpriteRenderer>().sprite = LoadResources.up_floor; } else if (cell.IsDownFloor()) { cell.GetComponent <SpriteRenderer>().sprite = LoadResources.down_floor; } else if (cell.id == (int)CellType.add_attack_10) { cell.GetComponent <SpriteRenderer>().sprite = LoadResources.add_attack_10; } else if (cell.id == (int)CellType.add_defence_1) { cell.GetComponent <SpriteRenderer>().sprite = LoadResources.add_defence_1; } else if (cell.id == (int)CellType.add_hp_100) { cell.GetComponent <SpriteRenderer>().sprite = LoadResources.add_hp_100; } else if (cell.id == (int)CellType.add_hp_1000) { cell.GetComponent <SpriteRenderer>().sprite = LoadResources.add_hp_1000; } else if (cell.id == (int)CellType.add_hp_10000) { cell.GetComponent <SpriteRenderer>().sprite = LoadResources.add_hp_10000; } }
void Start() { data = new MonsterData(2, "史莱姆", 20, 1, 20, 0, 1, StanceEnum.Lowland, 1); }
void Start() { // Debug.Log (" id = " + myId); if (myId != 0) { if ((int)(myId / 1000) == 9) { fateD = Core.Data.fateManager.getFateDataFromID(myId); equipD = null; monsterD = null; } else { switch (DataCore.getDataType(myId)) { case ConfigDataType.Fate: fateD = Core.Data.fateManager.getFateDataFromID(myId); equipD = null; monsterD = null; Debug.Log(" fate case = " + fateD); break; case ConfigDataType.Equip: equipD = Core.Data.EquipManager.getEquipConfig(myId); monsterD = null; fateD = null; break; case ConfigDataType.Monster: monsterD = Core.Data.monManager.getMonsterByNum(myId); equipD = null; fateD = null; break; default: fateD = null; monsterD = null; equipD = null; break; } } } if (fateD != null) { lblTitle.text = fateD.name; InitHeadItem(); defaultItem = headItem [0]; defaultItem.mainBg.spriteName = slectName; InitFateItem(defaultItem); spArrow.transform.localPosition = new Vector3(-125, spArrow.transform.localPosition.y, 0); } else if (equipD != null) { lblTitle.text = equipD.name; InitHeadItem(); defaultItem = headItem [0]; defaultItem.mainBg.spriteName = slectName; InitFateItem(defaultItem); spArrow.transform.localPosition = new Vector3(-125, spArrow.transform.localPosition.y, 0); } else if (monsterD != null) { lblTitle.text = monsterD.name; InitHeadItem(); defaultItem = headItem [0]; defaultItem.mainBg.spriteName = slectName; InitFateItem(defaultItem); spArrow.transform.localPosition = new Vector3(-125, spArrow.transform.localPosition.y, 0); } }
public void SaveMonsterData(MonsterData data) { current_monsterData = data; }
public void refresh(string fielpath) { if (fielpath.Length != 0) { //WWW www = new WWW(fielpath); //yield return www; //MemoryStream ms = new MemoryStream(www.bytes); TextAsset txt = Resources.Load(fielpath) as TextAsset; MemoryStream ms = new MemoryStream(txt.bytes); StructArry pbi = Serializer.DeserializeWithLengthPrefix <StructArry>(ms, PrefixStyle.None); Type type = pbi.GetType(); string strname = type.Name; switch (strname) { case "MsgAttackData": MsgAttackData struct1 = pbi as MsgAttackData; DataPool = struct1.struct_data as List <Struct>; for (int i = 0; i < DataPool.Count; i++) { AttackData dt = DataPool[i] as AttackData; DataStore.Add((int)dt.id, DataPool[i]); } break; case "MsgAwakeningSkill": MsgAwakeningSkill struct2 = pbi as MsgAwakeningSkill; DataPool = struct2.struct_data as List <Struct>; for (int i = 0; i < DataPool.Count; i++) { AwakeningSkill dt = DataPool[i] as AwakeningSkill; DataStore.Add((int)dt.id, DataPool[i]); } break; case "MsgAwakeningSkillLevel": MsgAwakeningSkillLevel struct3 = pbi as MsgAwakeningSkillLevel; DataPool = struct3.struct_data as List <Struct>; for (int i = 0; i < DataPool.Count; i++) { AwakeningSkillLevel dt = DataPool[i] as AwakeningSkillLevel; DataStore.Add((int)dt.id, DataPool[i]); } break; case "MsgElementFactor": MsgElementFactor struct4 = pbi as MsgElementFactor; DataPool = struct4.struct_data as List <Struct>; for (int i = 0; i < DataPool.Count; i++) { ElementFactor dt = DataPool[i] as ElementFactor; DataStore.Add((int)dt.id, DataPool[i]); } break; case "MsgBuffData": MsgBuffData struct5 = pbi as MsgBuffData; DataPool = struct5.struct_data as List <Struct>; for (int i = 0; i < DataPool.Count; i++) { BuffData dt = DataPool[i] as BuffData; DataStore.Add((int)dt.id, DataPool[i]); } break; case "MsgCombinationData": MsgCombinationData struct6 = pbi as MsgCombinationData; DataPool = struct6.struct_data as List <Struct>; for (int i = 0; i < DataPool.Count; i++) { CombinationData dt = DataPool[i] as CombinationData; DataStore.Add((int)dt.id, DataPool[i]); } break; case "MsgConstData": MsgConstData struct7 = pbi as MsgConstData; DataPool = struct7.struct_data as List <Struct>; for (int i = 0; i < DataPool.Count; i++) { ConstData dt = DataPool[i] as ConstData; DataStore.Add((int)dt.id, DataPool[i]); } break; case "MsgCurrency": MsgCurrency struct8 = pbi as MsgCurrency; DataPool = struct8.struct_data as List <Struct>; for (int i = 0; i < DataPool.Count; i++) { Currency dt = DataPool[i] as Currency; DataStore.Add((int)dt.id, DataPool[i]); } break; case "MsgDungeon": MsgDungeon struct9 = pbi as MsgDungeon; DataPool = struct9.struct_data as List <Struct>; for (int i = 0; i < DataPool.Count; i++) { Dungeon dt = DataPool[i] as Dungeon; DataStore.Add((int)dt.id, DataPool[i]); } break; case "MsgEnemyData": MsgEnemyData struct10 = pbi as MsgEnemyData; DataPool = struct10.struct_data as List <Struct>; for (int i = 0; i < DataPool.Count; i++) { EnemyData dt = DataPool[i] as EnemyData; DataStore.Add((int)dt.id, DataPool[i]); } break; case "MsgEvaluateBonus": MsgEvaluateBonus struct11 = pbi as MsgEvaluateBonus; DataPool = struct11.struct_data as List <Struct>; for (int i = 0; i < DataPool.Count; i++) { EvaluateBonus dt = DataPool[i] as EvaluateBonus; DataStore.Add((int)dt.id, DataPool[i]); } break; case "MsgFieldEffect": MsgFieldEffect struct12 = pbi as MsgFieldEffect; DataPool = struct12.struct_data as List <Struct>; for (int i = 0; i < DataPool.Count; i++) { FieldEffect dt = DataPool[i] as FieldEffect; DataStore.Add((int)dt.id, DataPool[i]); } break; case "MsgHeroData": MsgHeroData struct13 = pbi as MsgHeroData; DataPool = struct13.struct_data as List <Struct>; for (int i = 0; i < DataPool.Count; i++) { HeroData dt = DataPool[i] as HeroData; DataStore.Add((int)dt.id, DataPool[i]); } break; case "MsgHeroLvData": MsgHeroLvData struct14 = pbi as MsgHeroLvData; DataPool = struct14.struct_data as List <Struct>; for (int i = 0; i < DataPool.Count; i++) { HeroLvData dt = DataPool[i] as HeroLvData; DataStore.Add((int)dt.level, DataPool[i]); } break; case "MsgHeroEvolution": MsgHeroEvolution struct15 = pbi as MsgHeroEvolution; DataPool = struct15.struct_data as List <Struct>; for (int i = 0; i < DataPool.Count; i++) { HeroEvolution dt = DataPool[i] as HeroEvolution; DataStore.Add((int)dt.id, DataPool[i]); } break; case "MsgPotentialData": MsgPotentialData struct16 = pbi as MsgPotentialData; DataPool = struct16.struct_data as List <Struct>; for (int i = 0; i < DataPool.Count; i++) { PotentialData dt = DataPool[i] as PotentialData; DataStore.Add((int)dt.element, DataPool[i]); } break; case "MsgItemData": MsgItemData struct17 = pbi as MsgItemData; DataPool = struct17.struct_data as List <Struct>; for (int i = 0; i < DataPool.Count; i++) { ItemData dt = DataPool[i] as ItemData; DataStore.Add((int)dt.id, DataPool[i]); } break; case "MsgLeaderSkill": MsgLeaderSkill struct18 = pbi as MsgLeaderSkill; DataPool = struct18.struct_data as List <Struct>; for (int i = 0; i < DataPool.Count; i++) { LeaderSkill dt = DataPool[i] as LeaderSkill; DataStore.Add((int)dt.id, DataPool[i]); } break; case "MsgMonsterData": MsgMonsterData struct19 = pbi as MsgMonsterData; DataPool = struct19.struct_data as List <Struct>; for (int i = 0; i < DataPool.Count; i++) { MonsterData dt = DataPool[i] as MonsterData; DataStore.Add((int)dt.id, DataPool[i]); } break; case "MsgMonsterSkill": MsgMonsterSkill struct20 = pbi as MsgMonsterSkill; DataPool = struct20.struct_data as List <Struct>; for (int i = 0; i < DataPool.Count; i++) { MonsterSkill dt = DataPool[i] as MonsterSkill; DataStore.Add((int)dt.id, DataPool[i]); } break; case "MsgNormalSkill": MsgNormalSkill struct21 = pbi as MsgNormalSkill; DataPool = struct21.struct_data as List <Struct>; for (int i = 0; i < DataPool.Count; i++) { NormalSkill dt = DataPool[i] as NormalSkill; DataStore.Add((int)dt.id, DataPool[i]); } break; case "MsgNormalSkillLvUp": MsgNormalSkillLvUp struct22 = pbi as MsgNormalSkillLvUp; DataPool = struct22.struct_data as List <Struct>; for (int i = 0; i < DataPool.Count; i++) { NormalSkillLvUp dt = DataPool[i] as NormalSkillLvUp; DataStore.Add((int)dt.id, DataPool[i]); } break; case "MsgRoleData": MsgRoleData struct23 = pbi as MsgRoleData; DataPool = struct23.struct_data as List <Struct>; for (int i = 0; i < DataPool.Count; i++) { RoleData dt = DataPool[i] as RoleData; DataStore.Add((int)dt.level, DataPool[i]); } break; case "MsgRuneData": MsgRuneData struct24 = pbi as MsgRuneData; DataPool = struct24.struct_data as List <Struct>; for (int i = 0; i < DataPool.Count; i++) { RuneData dt = DataPool[i] as RuneData; DataStore.Add((int)dt.id, DataPool[i]); } break; case "MsgRuneSet": MsgRuneSet struct25 = pbi as MsgRuneSet; DataPool = struct25.struct_data as List <Struct>; for (int i = 0; i < DataPool.Count; i++) { RuneSet dt = DataPool[i] as RuneSet; DataStore.Add((int)dt.id, DataPool[i]); } break; case "MsgRuneEnhance": MsgRuneEnhance struct26 = pbi as MsgRuneEnhance; DataPool = struct26.struct_data as List <Struct>; for (int i = 0; i < DataPool.Count; i++) { RuneEnhance dt = DataPool[i] as RuneEnhance; DataStore.Add((int)dt.level, DataPool[i]); } break; case "MsgRuneSynchro": MsgRuneSynchro struct27 = pbi as MsgRuneSynchro; DataPool = struct27.struct_data as List <Struct>; for (int i = 0; i < DataPool.Count; i++) { RuneSynchro dt = DataPool[i] as RuneSynchro; DataStore.Add((int)dt.id, DataPool[i]); } break; case "MsgSpecialSkill": MsgSpecialSkill struct28 = pbi as MsgSpecialSkill; DataPool = struct28.struct_data as List <Struct>; for (int i = 0; i < DataPool.Count; i++) { SpecialSkill dt = DataPool[i] as SpecialSkill; DataStore.Add((int)dt.id, DataPool[i]); } break; case "MsgSpecialSkillLvUp": MsgSpecialSkillLvUp struct29 = pbi as MsgSpecialSkillLvUp; DataPool = struct29.struct_data as List <Struct>; for (int i = 0; i < DataPool.Count; i++) { SpecialSkillLvUp dt = DataPool[i] as SpecialSkillLvUp; DataStore.Add((int)dt.id, DataPool[i]); } break; case "MsgDecisionFactor": MsgDecisionFactor struct30 = pbi as MsgDecisionFactor; DataPool = struct30.struct_data as List <Struct>; for (int i = 0; i < DataPool.Count; i++) { DecisionFactor dt = DataPool[i] as DecisionFactor; DataStore.Add((int)dt.id, DataPool[i]); } break; case "MsgTaskData": MsgTaskData struct31 = pbi as MsgTaskData; DataPool = struct31.struct_data as List <Struct>; for (int i = 0; i < DataPool.Count; i++) { TaskData dt = DataPool[i] as TaskData; DataStore.Add((int)dt.id, DataPool[i]); } break; case "MsgHeroText": MsgHeroText struct32 = pbi as MsgHeroText; DataPool = struct32.struct_data as List <Struct>; for (int i = 0; i < DataPool.Count; i++) { HeroText dt = DataPool[i] as HeroText; Util.TextDic.Add(Util.GetConfigString(dt.name), Util.GetConfigString(dt.textDes)); } break; case "MsgDungeonText": MsgDungeonText struct33 = pbi as MsgDungeonText; DataPool = struct33.struct_data as List <Struct>; for (int i = 0; i < DataPool.Count; i++) { DungeonText dt = DataPool[i] as DungeonText; Util.TextDic.Add(Util.GetConfigString(dt.name), Util.GetConfigString(dt.textDes)); } break; case "MsgMonsterText": MsgMonsterText struct34 = pbi as MsgMonsterText; DataPool = struct34.struct_data as List <Struct>; for (int i = 0; i < DataPool.Count; i++) { MonsterText dt = DataPool[i] as MonsterText; Util.TextDic.Add(Util.GetConfigString(dt.name), Util.GetConfigString(dt.textDes)); } break; case "MsgFieldText": MsgFieldText struct35 = pbi as MsgFieldText; DataPool = struct35.struct_data as List <Struct>; for (int i = 0; i < DataPool.Count; i++) { FieldText dt = DataPool[i] as FieldText; Util.TextDic.Add(Util.GetConfigString(dt.name), Util.GetConfigString(dt.textDes)); } break; case "MsgCombinationText": MsgCombinationText struct36 = pbi as MsgCombinationText; DataPool = struct36.struct_data as List <Struct>; for (int i = 0; i < DataPool.Count; i++) { CombinationText dt = DataPool[i] as CombinationText; Util.TextDic.Add(Util.GetConfigString(dt.name), Util.GetConfigString(dt.textDes)); } break; case "MsgSkillText": MsgSkillText struct37 = pbi as MsgSkillText; DataPool = struct37.struct_data as List <Struct>; for (int i = 0; i < DataPool.Count; i++) { SkillText dt = DataPool[i] as SkillText; Util.TextDic.Add(Util.GetConfigString(dt.name), Util.GetConfigString(dt.textDes)); } break; case "MsgCurrencyText": MsgCurrencyText struct38 = pbi as MsgCurrencyText; DataPool = struct38.struct_data as List <Struct>; for (int i = 0; i < DataPool.Count; i++) { CurrencyText dt = DataPool[i] as CurrencyText; Util.TextDic.Add(Util.GetConfigString(dt.name), Util.GetConfigString(dt.textDes)); } break; case "MsgBuffText": MsgBuffText struct39 = pbi as MsgBuffText; DataPool = struct39.struct_data as List <Struct>; for (int i = 0; i < DataPool.Count; i++) { BuffText dt = DataPool[i] as BuffText; Util.TextDic.Add(Util.GetConfigString(dt.name), Util.GetConfigString(dt.textDes)); } break; case "MsgItemText": MsgItemText struct40 = pbi as MsgItemText; DataPool = struct40.struct_data as List <Struct>; for (int i = 0; i < DataPool.Count; i++) { ItemText dt = DataPool[i] as ItemText; Util.TextDic.Add(Util.GetConfigString(dt.name), Util.GetConfigString(dt.textDes)); } break; case "MsgRuneText": MsgRuneText struct41 = pbi as MsgRuneText; DataPool = struct41.struct_data as List <Struct>; for (int i = 0; i < DataPool.Count; i++) { RuneText dt = DataPool[i] as RuneText; Util.TextDic.Add(Util.GetConfigString(dt.name), Util.GetConfigString(dt.textDes)); } break; case "MsgTaskText": MsgTaskText struct42 = pbi as MsgTaskText; DataPool = struct42.struct_data as List <Struct>; for (int i = 0; i < DataPool.Count; i++) { TaskText dt = DataPool[i] as TaskText; Util.TextDic.Add(Util.GetConfigString(dt.name), Util.GetConfigString(dt.textDes)); } break; case "MsgWorldData": MsgWorldData struct43 = pbi as MsgWorldData; DataPool = struct43.struct_data as List <Struct>; for (int i = 0; i < DataPool.Count; i++) { WorldData dt = DataPool[i] as WorldData; DataStore.Add((int)dt.id, DataPool[i]); } break; case "MsgAirRaidData": MsgAirRaidData struct44 = pbi as MsgAirRaidData; DataPool = struct44.struct_data as List <Struct>; for (int i = 0; i < DataPool.Count; i++) { AirRaidData dt = DataPool[i] as AirRaidData; DataStore.Add((int)dt.id, DataPool[i]); } break; case "MsgTalentData": MsgTalentData struct45 = pbi as MsgTalentData; DataPool = struct45.struct_data as List <Struct>; for (int i = 0; i < DataPool.Count; i++) { TalentData dt = DataPool[i] as TalentData; DataStore.Add((int)dt.id, DataPool[i]); } break; case "MsgSummonData": MsgSummonData struct46 = pbi as MsgSummonData; DataPool = struct46.struct_data as List <Struct>; for (int i = 0; i < DataPool.Count; i++) { SummonData dt = DataPool[i] as SummonData; DataStore.Add((int)dt.id, DataPool[i]); } break; case "MsgSummonPrize": MsgSummonPrize struct47 = pbi as MsgSummonPrize; DataPool = struct47.struct_data as List <Struct>; for (int i = 0; i < DataPool.Count; i++) { SummonPrize dt = DataPool[i] as SummonPrize; DataStore.Add((int)dt.id, DataPool[i]); } break; case "MsgStarWeight": MsgStarWeight struct48 = pbi as MsgStarWeight; DataPool = struct48.struct_data as List <Struct>; for (int i = 0; i < DataPool.Count; i++) { StarWeight dt = DataPool[i] as StarWeight; DataStore.Add((int)dt.id, DataPool[i]); } break; case "MsgSpecialEffect": MsgSpecialEffect struct49 = pbi as MsgSpecialEffect; DataPool = struct49.struct_data as List <Struct>; for (int i = 0; i < DataPool.Count; i++) { SpecialEffect dt = DataPool[i] as SpecialEffect; DataStore.Add((int)dt.id, DataPool[i]); } break; case "MsgFlyingEffect": MsgFlyingEffect struct50 = pbi as MsgFlyingEffect; DataPool = struct50.struct_data as List <Struct>; for (int i = 0; i < DataPool.Count; i++) { FlyingEffect dt = DataPool[i] as FlyingEffect; DataStore.Add((int)dt.id, DataPool[i]); } break; case "MsgDistanceFactor": MsgDistanceFactor struct51 = pbi as MsgDistanceFactor; DataPool = struct51.struct_data as List <Struct>; for (int i = 0; i < DataPool.Count; i++) { DistanceFactor dt = DataPool[i] as DistanceFactor; DataStore.Add((int)dt.id, DataPool[i]); } break; } } }
/// <summary> /// 將字典傳入,依json表設定資料 /// </summary> public static void SetData(Dictionary<int, List<MonsterData>> _groupDic,Dictionary<int,MonsterData> _dic) { string jsonStr = Resources.Load<TextAsset>("Json/Monster").ToString(); JsonData jd = JsonMapper.ToObject(jsonStr); JsonData items = jd["Monster"]; for (int i = 0; i < items.Count; i++) { MonsterData armorData = new MonsterData(items[i]); int id = int.Parse(items[i]["ID"].ToString()); int groupID = int.Parse(items[i]["Group"].ToString()); _dic.Add(id, armorData); if (_groupDic.ContainsKey(groupID)) _groupDic[groupID].Add(armorData); else { List<MonsterData> eventDataList = new List<MonsterData>(); eventDataList.Add(armorData); _groupDic.Add(groupID, eventDataList); } } }
public void NotifyMonsterUpdateData(int monsterId, MonsterData monsterData) { _packets.Add(_packetBuilder.BuildMonsterUpdateData(monsterId, monsterData)); }
internal Response_PvE_EnterDungeon(SecurePacket packet) : base(packet) { if (ResultCodeNo != ResultCode.Ok) return; Int32 count = packet.GetInt32(); while (count-- > 0) { RoundData round = new RoundData(); round.RoundId = packet.GetInt32(); round.Name = packet.GetStringFromUtf16(); round.IsBossRound = packet.GetBoolean(); round.Monsters = new List<MonsterData>(); Rounds.Add(round); Int32 monsterCount = packet.GetInt32(); while (monsterCount-- > 0) { MonsterData monster = new MonsterData(); monster.MonsterNo = packet.GetInt32(); monster.MonsterId = packet.GetInt32(); monster.Name = packet.GetStringFromUtf16(); monster.GradeId = packet.GetInt32(); monster.PromotionId = packet.GetInt32(); monster.Level = packet.GetInt32(); round.Monsters.Add(monster); } } }
/********* ** Command Methods *********/ public void SpawnEntity(string command, string[] args) { if (args.Length == 0 || args[0].Equals("help")) { Monitor.Log($"Usage: monster_spawn \"Monster Name\" [posX] [posY] [amount]" + $"\n\nUses Farmer's coordinates if none or '{config.FarmerPositionCharacter}' was given." + $"\n\nExample: monster_spawn \"Green Slime\" 32 23 4" + $"\nspawns four Green Slimes at coordinates 32|23" + $"\nuse monster_list for a list of available monster names.", LogLevel.Info); return; } //We need a world to spawn monsters in, duh if (Context.IsWorldReady) { if (args.Length == 0) { Monitor.Log("You need to provide at least a Monster name!", LogLevel.Info); return; } MonsterData.Monster m = MonsterData.ForName(args[0]); Vector2 location = Game1.player.getTileLocation(); if (m.Equals((MonsterData.Monster)(-1))) { Monitor.Log($"There is no Monster with the name {args[0]}", LogLevel.Info); return; } int amount = 1; try { //Determine X tile if (args.Length >= 2) { location.X = int.Parse(args[1].Replace(config.FarmerPositionCharacter.ToString(), location.X.ToString())); } //Determine Y tile if (args.Length >= 3) { location.Y = int.Parse(args[2].Replace(config.FarmerPositionCharacter.ToString(), location.Y.ToString())); } if (args.Length >= 4) { amount = int.Parse(args[3]); } } catch (Exception e) { Console.Error.WriteLine(e.Message); Monitor.Log("Invalid Arguments! Type \"monster_spawn help\" for usage help.", LogLevel.Info); return; } if (m != MonsterData.Monster.Duggy && m != MonsterData.Monster.WildernessGolem) { location.X *= Game1.tileSize; location.Y *= Game1.tileSize; } Spawner.GetInstance().SpawnMonster(m, location, amount); } else { Monitor.Log("Load a save first!"); } }
public override bool ApplyInstant(FormationUnit performer, FormationUnit target, Effect effect) { if (target == null) { return(false); } if (effect.IntegerParams[EffectIntParams.Chance].HasValue) { if (!RandomSolver.CheckSuccess((float)effect.IntegerParams[EffectIntParams.Chance].Value / 100)) { return(false); } } List <int> summonPool = new List <int>(); List <float> chancePool = new List <float>(SummonChances); for (int i = 0; i < SummonMonsters.Count; i++) { summonPool.Add(i); } for (int i = 0; i < SummonCount; i++) { if (summonPool.Count == 0) { break; } int rolledIndex = RandomSolver.ChooseRandomIndex(chancePool); int summonIndex = summonPool[rolledIndex]; if (SummonLimits.Count > 0) { if (SummonLimits[summonIndex] <= performer.Party.Units.FindAll(unit => unit.Character.Name == SummonMonsters[summonIndex]).Count) { i--; summonPool.RemoveAt(rolledIndex); chancePool.RemoveAt(rolledIndex); continue; } } if (performer.Formation.AvailableSummonSpace < DarkestDungeonManager.Data.Monsters[SummonMonsters[summonIndex]].Size) { i--; summonPool.RemoveAt(rolledIndex); chancePool.RemoveAt(rolledIndex); continue; } MonsterData summonData = DarkestDungeonManager.Data.Monsters[SummonMonsters[summonIndex]]; GameObject summonObject = Resources.Load("Prefabs/Monsters/" + summonData.TypeId) as GameObject; bool rollInitiative = SummonRollInitiatives.Count > 0; if (SummonRanks.Count > 0) { RaidSceneManager.BattleGround.SummonUnit(summonData, summonObject, SummonRanks[summonIndex]. Ranks[RandomSolver.Next(SummonRanks[summonIndex].Ranks.Count)], rollInitiative, CanSpawnLoot); } else { RaidSceneManager.BattleGround.SummonUnit(summonData, summonObject, 1, rollInitiative, CanSpawnLoot); } } return(true); }
/// <summary> /// 吸收怪物属性,加强英雄属性 /// </summary> /// <param name="data"></param> private void PowerUpByMonster(MonsterData data) { this.heroData.PowerUpByAbsorbPower(data.HP, data.Def, data.Atk, data.AtkSpeed); this.RefreshMsgText(); }
public void SetData(int[] award) { if (award == null || award.Length == 0) { return; } ConfigDataType type = DataCore.getDataType(award[0]); switch (type) { case ConfigDataType.Item: { ItemData data = Core.Data.itemManager.getItemData(award[0]); if (data != null) { Spr_head.atlas = AtlasMgr.mInstance.itemAtlas; Spr_head.spriteName = award[0].ToString(); Lab_Name.text = data.name; star.SetStar(data.star); } break; } case ConfigDataType.Monster: { MonsterData data = Core.Data.monManager.getMonsterByNum(award[0]); if (data != null) { AtlasMgr.mInstance.SetHeadSprite(Spr_head, award[0].ToString()); Lab_Name.text = data.name; star.SetStar(data.star); } break; } case ConfigDataType.Equip: { EquipData data = Core.Data.EquipManager.getEquipConfig(award[0]); if (data != null) { Spr_head.atlas = AtlasMgr.mInstance.equipAtlas; Spr_head.spriteName = data.ID.ToString(); Lab_Name.text = data.name; star.SetStar(data.star); } break; } case ConfigDataType.Gems: { GemData data = Core.Data.gemsManager.getGemData(award[0]); if (data != null) { Spr_head.atlas = AtlasMgr.mInstance.commonAtlas; Spr_head.spriteName = data.anime2D; Lab_Name.text = data.name; star.SetStar(data.star); } break; } case ConfigDataType.Frag: { SoulData data = Core.Data.soulManager.GetSoulConfigByNum(award[0]); switch ((ItemType)data.type) { case ItemType.Earth_Frage: case ItemType.Nameike_Frage: Spr_head.atlas = AtlasMgr.mInstance.itemAtlas; Spr_head.spriteName = data.ID.ToString(); break; case ItemType.Monster_Frage: AtlasMgr.mInstance.SetHeadSprite(Spr_head, data.updateId.ToString()); break; } Lab_Name.text = data.name; star.SetStar(data.star); break; } } Spr_head.MakePixelPerfect(); LabNum.text = ItemNumLogic.setItemNum(award[1], LabNum, Spr_Num); //award[1].ToString(); gameObject.name = award[0].ToString(); isEnable = System.Convert.ToBoolean(award[2]); }
public void addLoadModelData(MonsterData md) { addLoadModelData(md.resource, null, md); }
void InitSpawnCtlr() { if (SpecialGameState.IsGoldStage)//리젠 영역잡기 { DungeonTable.EquipInfo mLowData = _LowDataMgr.instance.GetLowDataEquipBattle((byte)StageId); if (mLowData != null) { //regenCount = goldLowData.regenCount; List <string> charPos = mLowData.RegenCharacter.list; CLeft = short.Parse(charPos[0]); CTop = short.Parse(charPos[1]); CRight = short.Parse(charPos[2]); CBottom = short.Parse(charPos[3]); List <string> mobPos = mLowData.RegenMob.list; MLeft = short.Parse(mobPos[0]); MTop = short.Parse(mobPos[1]); MRight = short.Parse(mobPos[2]); MBottom = short.Parse(mobPos[3]); for (int i = 0; i < mLowData.DummyMonster.Count; i++)//몬스터 { MonsterData data = new MonsterData(uint.Parse(mLowData.DummyMonster[i]), float.Parse(mLowData.DummyMonsterTime[i]), int.Parse(mLowData.DropGold[i]), 0, false); MonDataList.Add(data); } for (int i = 0; i < mLowData.RegenMobCount.Count; i++) //프랍 생성 { int count = int.Parse(mLowData.RegenMobCount[i]); //해당 개수만큼 해당 번쨰 프랍 생성. for (int j = 0; j < count; j++) { MonsterData data = new MonsterData(uint.Parse(mLowData.MonsterIndex[i]), float.Parse(mLowData.RegenMobTime[i]), 0, int.Parse(mLowData.GetMobPoint[i]), true); MonDataList.Add(data); } } } } else { DungeonTable.SkillInfo skillLowData = _LowDataMgr.instance.GetLowDataSkillBattle((byte)StageId); if (skillLowData != null) { List <string> charPos = skillLowData.RegenCharacter.list; CLeft = short.Parse(charPos[0]); CTop = short.Parse(charPos[1]); CRight = short.Parse(charPos[2]); CBottom = short.Parse(charPos[3]); List <string> mobPos = skillLowData.RegenMob.list; MLeft = short.Parse(mobPos[0]); MTop = short.Parse(mobPos[1]); MRight = short.Parse(mobPos[2]); MBottom = short.Parse(mobPos[3]); for (int i = 0; i < skillLowData.regenCount.Count; i++) //프랍 생성 { int count = int.Parse(skillLowData.regenCount[i]); //해당 개수만큼 해당 번쨰 프랍 생성. for (int j = 0; j < count; j++) { MonsterData data = new MonsterData(uint.Parse(skillLowData.MonsterIndex[i]), float.Parse(skillLowData.MonsterTime[i]), int.Parse(skillLowData.DropGold[i]), int.Parse(skillLowData.DropPoint[i]), false); MonDataList.Add(data); } } } } SpawnDisturbMob(true); //MaxBoxCount = SpawnPropList.Count; Debug.Log("SpacialDungeon Reward TotalValue= " + MaxValue); }
public static void GetExtraEffectFluctuationValue(out int result, out int change, MonsterData monsterData, GameWebAPI.RespDataMA_GetWorldDungeonExtraEffectM.WorldDungeonExtraEffectM[] effectArray, EffectStatusBase.ExtraEffectType extraEffectType, int skillType = 0, bool isChipValue = true) { int num = (int)ExtraEffectUtil.GetStatusValue(extraEffectType, monsterData, skillType); int num2 = 0; if (isChipValue) { num2 = ExtraEffectUtil.GetExtraChipValue(monsterData, extraEffectType); } MonsterData[] party = new MonsterData[] { monsterData }; if (CMD_PartyEdit.instance != null) { MonsterData[] array = CMD_PartyEdit.instance.GetSelectedMD().ToArray(); bool flag = array.Where((MonsterData item) => item.userMonster.userMonsterId == monsterData.userMonster.userMonsterId).Any <MonsterData>(); if (flag) { party = array; } else { GameWebAPI.RespDataMN_GetDeckList.DeckList[] deckList = DataMng.Instance().RespDataMN_DeckList.deckList; string deckNoText = DataMng.Instance().RespDataMN_DeckList.selectDeckNum; GameWebAPI.RespDataMN_GetDeckList.DeckList deckList2 = deckList.Where((GameWebAPI.RespDataMN_GetDeckList.DeckList item) => item.deckNum == deckNoText.ToString()).SingleOrDefault <GameWebAPI.RespDataMN_GetDeckList.DeckList>(); bool flag2 = deckList2.monsterList.Where((GameWebAPI.RespDataMN_GetDeckList.MonsterList item) => item.userMonsterId == monsterData.userMonster.userMonsterId).Any <GameWebAPI.RespDataMN_GetDeckList.MonsterList>(); if (flag2) { List <MonsterData> list = new List <MonsterData>(); foreach (GameWebAPI.RespDataMN_GetDeckList.MonsterList monsterList2 in deckList2.monsterList) { MonsterData monsterDataByUserMonsterID = MonsterDataMng.Instance().GetMonsterDataByUserMonsterID(monsterList2.userMonsterId, false); list.Add(monsterDataByUserMonsterID); } party = list.ToArray(); } } } int num3 = 0; AffectEffectProperty affectEffectProperty = null; if (extraEffectType == EffectStatusBase.ExtraEffectType.SkillPower) { List <AffectEffectProperty> affectEffectPropertyListForUtil = BattleServerControl.GetAffectEffectPropertyListForUtil(num.ToString()); if (affectEffectPropertyListForUtil != null && affectEffectPropertyListForUtil.Count <AffectEffectProperty>() > 0) { affectEffectProperty = affectEffectPropertyListForUtil[0]; num = affectEffectProperty.GetPower(null); num3 = ExtraEffectUtil.GetExtraStageValue(num, monsterData, party, effectArray, affectEffectProperty, extraEffectType); } else { num = num3; } } else if (extraEffectType == EffectStatusBase.ExtraEffectType.SkillHit) { List <AffectEffectProperty> affectEffectPropertyListForUtil2 = BattleServerControl.GetAffectEffectPropertyListForUtil(num.ToString()); if (affectEffectPropertyListForUtil2 != null && affectEffectPropertyListForUtil2.Count <AffectEffectProperty>() > 0) { affectEffectProperty = affectEffectPropertyListForUtil2[0]; num = (int)(affectEffectProperty.hitRate * 100f); num3 = ExtraEffectUtil.GetExtraStageValue(num, monsterData, party, effectArray, affectEffectProperty, extraEffectType); } else { num = num3; } } else { num3 = ExtraEffectUtil.GetExtraStageValue(num, monsterData, party, effectArray, affectEffectProperty, extraEffectType); } result = num3 + num2; change = 0; if (num2 > 0 || num < num3) { change = 1; } else if (num2 < 0 || num > num3) { change = -1; } }
public void SetData(ItemOfReward award) { m_data = award; ConfigDataType type = DataCore.getDataType(award.pid); RED.SetActive(false, sp_soul.gameObject); switch (type) { case ConfigDataType.Item: { ItemData data = Core.Data.itemManager.getItemData(award.pid); if (data != null) { Spr_head.atlas = AtlasMgr.mInstance.itemAtlas; // Spr_head.spriteName = award.pid.ToString(); Spr_head.spriteName = data.iconID.ToString(); Lab_Name.text = data.name; star.SetStar(data.star); } break; } case ConfigDataType.Monster: { MonsterData data = Core.Data.monManager.getMonsterByNum(award.pid); if (data != null) { AtlasMgr.mInstance.SetHeadSprite(Spr_head, award.pid.ToString()); Lab_Name.text = data.name; star.SetStar(data.star); if (sp_soul != null) { Monster mon = award.toMonster(Core.Data.monManager); int attr = (int)(mon.RTData.Attribute); sp_soul.spriteName = "Attribute_" + attr.ToString(); RED.SetActive(true, sp_soul.gameObject); } } break; } case ConfigDataType.Equip: { EquipData data = Core.Data.EquipManager.getEquipConfig(award.pid); if (data != null) { Spr_head.atlas = AtlasMgr.mInstance.equipAtlas; Spr_head.spriteName = data.ID.ToString(); Lab_Name.text = data.name; star.SetStar(data.star); } break; } case ConfigDataType.Gems: { GemData data = Core.Data.gemsManager.getGemData(award.pid); if (data != null) { Spr_head.atlas = AtlasMgr.mInstance.commonAtlas; Spr_head.spriteName = data.anime2D; Lab_Name.text = data.name; star.SetStar(data.star); } break; } case ConfigDataType.Frag: { SoulData data = Core.Data.soulManager.GetSoulConfigByNum(award.pid); switch ((ItemType)data.type) { case ItemType.Earth_Frage: case ItemType.Nameike_Frage: Spr_head.atlas = AtlasMgr.mInstance.itemAtlas; Spr_head.spriteName = data.ID.ToString(); break; case ItemType.Monster_Frage: AtlasMgr.mInstance.SetHeadSprite(Spr_head, data.updateId.ToString()); sp_soul.spriteName = "bag-0003"; sp_soul.MakePixelPerfect(); RED.SetActive(true, sp_soul.gameObject); break; case ItemType.Equip_Frage: Spr_head.atlas = AtlasMgr.mInstance.equipAtlas; Spr_head.spriteName = data.updateId.ToString(); Spr_head.MakePixelPerfect(); sp_soul.spriteName = "sui"; sp_soul.MakePixelPerfect(); RED.SetActive(true, sp_soul.gameObject); break; } Lab_Name.text = data.name; star.SetStar(data.star); break; } } Spr_head.MakePixelPerfect(); }
private static int GetExtraChipValue(MonsterData monsterData, EffectStatusBase.ExtraEffectType effectType) { float num = 0f; int areaId = ExtraEffectUtil.GetAreaId(); GameWebAPI.RespDataMA_GetMonsterMG.MonsterM group = MonsterMaster.GetMonsterMasterByMonsterGroupId(monsterData.monsterM.monsterGroupId).Group; foreach (int num2 in monsterData.GetChipEquip().GetChipIdList()) { GameWebAPI.RespDataMA_ChipEffectM.ChipEffect[] chipEffectData = ChipDataMng.GetChipEffectData(num2.ToString()); if (chipEffectData != null) { GameWebAPI.RespDataMA_ChipEffectM.ChipEffect[] invocationList = ChipEffectStatus.GetInvocationList(chipEffectData, EffectStatusBase.EffectTriggerType.Area, monsterData.monsterM.monsterGroupId.ToInt32(), null, areaId); int num3 = 0; EffectStatusBase.ExtraEffectType effectType2 = EffectStatusBase.ExtraEffectType.Non; switch (effectType) { case EffectStatusBase.ExtraEffectType.Atk: num3 = monsterData.userMonster.attack.ToInt32(); effectType2 = EffectStatusBase.ExtraEffectType.Atk; break; case EffectStatusBase.ExtraEffectType.Def: num3 = monsterData.userMonster.defense.ToInt32(); effectType2 = EffectStatusBase.ExtraEffectType.Def; break; case EffectStatusBase.ExtraEffectType.Hp: num3 = monsterData.userMonster.hp.ToInt32(); effectType2 = EffectStatusBase.ExtraEffectType.Hp; break; case EffectStatusBase.ExtraEffectType.Speed: num3 = monsterData.userMonster.speed.ToInt32(); effectType2 = EffectStatusBase.ExtraEffectType.Speed; break; case EffectStatusBase.ExtraEffectType.Satk: num3 = monsterData.userMonster.spAttack.ToInt32(); effectType2 = EffectStatusBase.ExtraEffectType.Satk; break; case EffectStatusBase.ExtraEffectType.Sdef: num3 = monsterData.userMonster.spDefense.ToInt32(); effectType2 = EffectStatusBase.ExtraEffectType.Sdef; break; default: if (effectType == EffectStatusBase.ExtraEffectType.SkillPower || effectType == EffectStatusBase.ExtraEffectType.SkillHit) { num3 = 0; effectType2 = EffectStatusBase.ExtraEffectType.Non; } break; } GameWebAPI.RespDataMA_MonsterIntegrationGroupMaster responseMonsterIntegrationGroupMaster = MasterDataMng.Instance().ResponseMonsterIntegrationGroupMaster; GameWebAPI.RespDataMA_MonsterIntegrationGroupMaster.MonsterIntegrationGroup[] source = responseMonsterIntegrationGroupMaster.monsterIntegrationGroupM.Where((GameWebAPI.RespDataMA_MonsterIntegrationGroupMaster.MonsterIntegrationGroup item) => item.monsterId == monsterData.monsterM.monsterId).ToArray <GameWebAPI.RespDataMA_MonsterIntegrationGroupMaster.MonsterIntegrationGroup>(); string[] monsterIntegrationIds = source.Select((GameWebAPI.RespDataMA_MonsterIntegrationGroupMaster.MonsterIntegrationGroup item) => item.monsterIntegrationId).ToArray <string>(); num += ChipEffectStatus.GetChipEffectValueToFloat(invocationList, (float)num3, false, monsterIntegrationIds, monsterData.monsterM.monsterGroupId, ExtraEffectUtil.ResistanceToTolerance(monsterData), group.tribe, MonsterGrowStepData.ToGrowStep(group.growStep), null, null, ChipEffectStatus.TargetType.Actor, effectType2, 0); } } return(Mathf.FloorToInt(num)); }
private void OnTouchEvolutionDiagramButton() { MonsterData dataChg = CMD_BaseSelect.DataChg; CMD_EvolutionRouteMap.CreateDialog(null, dataChg.GetMonsterMaster()); }
private static bool CheckExtraParams(MonsterData monsterData, GameWebAPI.RespDataMA_EventPointBonusM.EventPointBonus eventPointBonus) { if (float.Parse(eventPointBonus.effectValue) < 0f) { return(false); } ExtraEffectUtil.EventPointBonusTargetSubType eventPointBonusTargetSubType = (ExtraEffectUtil.EventPointBonusTargetSubType) int.Parse(eventPointBonus.targetSubType); switch (eventPointBonusTargetSubType) { case ExtraEffectUtil.EventPointBonusTargetSubType.MonsterTribe: if (monsterData.monsterMG.tribe.Equals(eventPointBonus.targetValue)) { return(true); } break; case ExtraEffectUtil.EventPointBonusTargetSubType.MonsterGroup: if (monsterData.monsterMG.monsterGroupId.Equals(eventPointBonus.targetValue)) { return(true); } break; case ExtraEffectUtil.EventPointBonusTargetSubType.GrowStep: if (monsterData.monsterMG.growStep.Equals(eventPointBonus.targetValue)) { return(true); } break; case ExtraEffectUtil.EventPointBonusTargetSubType.SkillId: if (monsterData.GetCommonSkill() != null && monsterData.GetCommonSkill().skillId.Equals(eventPointBonus.targetValue)) { return(true); } if (monsterData.GetLeaderSkill() != null && monsterData.GetLeaderSkill().skillId.Equals(eventPointBonus.targetValue)) { return(true); } break; case ExtraEffectUtil.EventPointBonusTargetSubType.ChipId: { MonsterChipEquipData chipEquip = monsterData.GetChipEquip(); int[] chipIdList = chipEquip.GetChipIdList(); if (chipIdList.Where((int item) => item == eventPointBonus.targetValue.ToInt32()).Any <int>()) { return(true); } break; } default: if (eventPointBonusTargetSubType == ExtraEffectUtil.EventPointBonusTargetSubType.MonsterIntegrationGroup) { GameWebAPI.RespDataMA_MonsterIntegrationGroupMaster.MonsterIntegrationGroup[] monsterIntegrationGroupM = MasterDataMng.Instance().ResponseMonsterIntegrationGroupMaster.monsterIntegrationGroupM; for (int i = 0; i < monsterIntegrationGroupM.Length; i++) { if (eventPointBonus.targetValue.Equals(monsterIntegrationGroupM[i].monsterIntegrationId) && monsterIntegrationGroupM[i].monsterId.Equals(monsterData.monsterM.monsterId)) { return(true); } } } break; } return(false); }
// Add a section of an ini file to game content // name is from the ini file and must start with the type // path is relative and is used for images or other paths in the content void AddContent(string name, Dictionary <string, string> content, string path, string packID) { // Is this a "TileSide" entry? if (name.IndexOf(TileSideData.type) == 0) { TileSideData d = new TileSideData(name, content, path); // Ignore invalid entry if (d.name.Equals("")) { return; } // If we don't already have one then add this if (!tileSides.ContainsKey(name)) { tileSides.Add(name, d); d.sets.Add(packID); } // If we do replace if this has higher priority else if (tileSides[name].priority < d.priority) { tileSides.Remove(name); tileSides.Add(name, d); } // items of the same priority belong to multiple packs else if (tileSides[name].priority == d.priority) { tileSides[name].sets.Add(packID); } } // Is this a "Hero" entry? if (name.IndexOf(HeroData.type) == 0) { HeroData d = new HeroData(name, content, path); // Ignore invalid entry if (d.name.Equals("")) { return; } // If we don't already have one then add this if (!heros.ContainsKey(name)) { heros.Add(name, d); d.sets.Add(packID); } // If we do replace if this has higher priority else if (heros[name].priority < d.priority) { heros.Remove(name); heros.Add(name, d); } // items of the same priority belong to multiple packs else if (heros[name].priority == d.priority) { heros[name].sets.Add(packID); } } // Is this a "Item" entry? if (name.IndexOf(ItemData.type) == 0) { ItemData d = new ItemData(name, content, path); // Ignore invalid entry if (d.name.Equals("")) { return; } // If we don't already have one then add this if (!items.ContainsKey(name)) { items.Add(name, d); d.sets.Add(packID); } // If we do replace if this has higher priority else if (items[name].priority < d.priority) { items.Remove(name); items.Add(name, d); } // items of the same priority belong to multiple packs else if (items[name].priority == d.priority) { items[name].sets.Add(packID); } } // Is this a "Monster" entry? if (name.IndexOf(MonsterData.type) == 0) { MonsterData d = new MonsterData(name, content, path); // Ignore invalid entry if (d.name.Equals("")) { return; } // Ignore monster activations if (name.IndexOf(ActivationData.type) != 0) { // If we don't already have one then add this if (!monsters.ContainsKey(name)) { monsters.Add(name, d); d.sets.Add(packID); } // If we do replace if this has higher priority else if (monsters[name].priority < d.priority) { monsters.Remove(name); monsters.Add(name, d); } // items of the same priority belong to multiple packs else if (monsters[name].priority == d.priority) { monsters[name].sets.Add(packID); } } } // Is this a "Activation" entry? if (name.IndexOf(ActivationData.type) == 0) { ActivationData d = new ActivationData(name, content, path); // Ignore invalid entry if (d.name.Equals("")) { return; } // If we don't already have one then add this if (!activations.ContainsKey(name)) { activations.Add(name, d); d.sets.Add(packID); } // If we do replace if this has higher priority else if (activations[name].priority < d.priority) { activations.Remove(name); activations.Add(name, d); } // items of the same priority belong to multiple packs else if (activations[name].priority == d.priority) { activations[name].sets.Add(packID); } } // Is this a "Attack" entry? if (name.IndexOf(AttackData.type) == 0) { AttackData d = new AttackData(name, content, path); // Ignore invalid entry if (d.name.Equals("")) { return; } // If we don't already have one then add this if (!investigatorAttacks.ContainsKey(name)) { investigatorAttacks.Add(name, d); d.sets.Add(packID); } // If we do replace if this has higher priority else if (investigatorAttacks[name].priority < d.priority) { investigatorAttacks.Remove(name); investigatorAttacks.Add(name, d); } // items of the same priority belong to multiple packs else if (investigatorAttacks[name].priority == d.priority) { investigatorAttacks[name].sets.Add(packID); } } // Is this a "Evade" entry? if (name.IndexOf(EvadeData.type) == 0) { EvadeData d = new EvadeData(name, content, path); // Ignore invalid entry if (d.name.Equals("")) { return; } // If we don't already have one then add this if (!investigatorEvades.ContainsKey(name)) { investigatorEvades.Add(name, d); d.sets.Add(packID); } // If we do replace if this has higher priority else if (investigatorEvades[name].priority < d.priority) { investigatorEvades.Remove(name); investigatorEvades.Add(name, d); } // items of the same priority belong to multiple packs else if (investigatorEvades[name].priority == d.priority) { investigatorEvades[name].sets.Add(packID); } } // Is this a "Horror" entry? if (name.IndexOf(HorrorData.type) == 0) { HorrorData d = new HorrorData(name, content, path); // Ignore invalid entry if (d.name.Equals("")) { return; } // If we don't already have one then add this if (!horrorChecks.ContainsKey(name)) { horrorChecks.Add(name, d); d.sets.Add(packID); } // If we do replace if this has higher priority else if (horrorChecks[name].priority < d.priority) { horrorChecks.Remove(name); horrorChecks.Add(name, d); } // items of the same priority belong to multiple packs else if (horrorChecks[name].priority == d.priority) { horrorChecks[name].sets.Add(packID); } } // Is this a "Token" entry? if (name.IndexOf(TokenData.type) == 0) { TokenData d = new TokenData(name, content, path); // Ignore invalid entry if (d.name.Equals("")) { return; } // If we don't already have one then add this if (!tokens.ContainsKey(name)) { tokens.Add(name, d); d.sets.Add(packID); } // If we do replace if this has higher priority else if (tokens[name].priority < d.priority) { tokens.Remove(name); tokens.Add(name, d); } // items of the same priority belong to multiple packs else if (tokens[name].priority == d.priority) { tokens[name].sets.Add(packID); } } // Is this a "Peril" entry? if (name.IndexOf(PerilData.type) == 0) { PerilData d = new PerilData(name, content); // Ignore invalid entry if (d.sectionName.Equals("")) { return; } // If we don't already have one then add this if (!perils.ContainsKey(name)) { perils.Add(name, d); } // If we do replace if this has higher priority else if (perils[name].priority < d.priority) { perils.Remove(name); perils.Add(name, d); } } // Is this a "Puzzle" entry? if (name.IndexOf(PuzzleData.type) == 0) { PuzzleData d = new PuzzleData(name, content, path); // Ignore invalid entry if (d.name.Equals("")) { return; } // If we don't already have one then add this if (!puzzles.ContainsKey(name)) { puzzles.Add(name, d); } // If we do replace if this has higher priority else if (puzzles[name].priority < d.priority) { puzzles.Remove(name); puzzles.Add(name, d); } } }
public void SetCfg(MonsterData cfg) { m_monsterData = cfg; SetIntAttr("speed", cfg.speed); SetIntAttr("scaleRadius", cfg.scaleRadius); }
public void SetSelectedMonster(MonsterData data) { m_selectedMonster = data; }
private List<MonsterData> SerializeMonsters() { var list = new List<MonsterData>(); foreach (var monster in _inGame.monsters) { var monsterData = new MonsterData { type = monster.GetType().ToString(), Position = monster.Position, CurrentHitPoints = monster.CurrentHitPoints, CurrentMana = monster.CurrentMana, }; list.Add(monsterData); } return list; }
// Use this for initialization void Start() { enemiesInRange = new List<GameObject>(); lastShotTime = Time.time; monsterData = gameObject.GetComponentInChildren<MonsterData> (); }
private static bool CheckGrowStep(MonsterData monsterData, string targetValue) { return(monsterData.monsterMG.growStep == targetValue); }
private void incomingMonsterData(MonsterData mobdata) { bool found = false; foreach(var entity in GameWorld.GetInstance.listEntity) { if (entity is NetworkMonsterSprite) { NetworkMonsterSprite monster = (NetworkMonsterSprite)entity; if (monster.InstanceID.ToString() == mobdata.InstanceID) { found = true; // update existing monster if (mobdata.Action == "Sprite_Update") { if (Math.Abs(monster.Position.X - mobdata.PositionX) >= 2) // avoid lag { if (monster.spriteEffect == SpriteEffects.None) monster.WALK_SPEED += (int)(monster.Position.X - mobdata.PositionX) * 2; else monster.WALK_SPEED -= (int)(monster.Position.X - mobdata.PositionX) * 2; monster.WALK_SPEED = Clamp(monster.WALK_SPEED, 50, 170); } else monster.WALK_SPEED = 97; } if (mobdata.Action == "Agressive_Update") { monster.RUN_SPEED = 122; monster.update_server( new Vector2(mobdata.PositionX, mobdata.PositionY), (EntityState)Enum.Parse(typeof(EntityState), mobdata.spritestate), (SpriteEffects)Enum.Parse(typeof(SpriteEffects), mobdata.spriteEffect)); } else if (mobdata.Action == "Died") { monster.KeepAliveTime = 0; // remove at next update round } else { monster.WALK_SPEED = 97; monster.update_server( new Vector2(mobdata.PositionX, mobdata.PositionY), (EntityState)Enum.Parse(typeof(EntityState), mobdata.spritestate), (SpriteEffects)Enum.Parse(typeof(SpriteEffects), mobdata.spriteEffect)); } } } } if (!found) // add new monster if (GameWorld.GetInstance.newEntity.FindAll(x => x.InstanceID.ToString() == mobdata.InstanceID).Count == 0) GameWorld.GetInstance.newEntity.Add( new NetworkMonsterSprite(mobdata.MonsterID, mobdata.InstanceID, new Vector2(mobdata.PositionX, mobdata.PositionY), new Vector2(mobdata.BorderMin, mobdata.BorderMax))); }
private void LoadData() { MonsterData.LoadMonsterData(); AbnormalityData.LoadAbnormalityData(); }
private static bool CheckTribe(MonsterData monsterData, string targetValue) { return(monsterData.monsterMG.tribe == targetValue); }
public void RequestSpawnEnemy(string lairName, string monsterName) { if(m_network != null) { MonsterData monster = new MonsterData (); monster.lairId = lairName; monster.monsterId = monsterName; MonsterPacket packet = new MonsterPacket(monster); int serverNode = m_network.GetServerNode(); m_network.SendReliable<MonsterData>(serverNode, packet); } }
private static bool CheckMonsterGroup(MonsterData monsterData, string targetValue) { return(monsterData.monsterMG.monsterGroupId == targetValue); }
void OnGUI() { if (_data == null) { // ScriptableObjectの読み込み _data = AssetDatabase.LoadAssetAtPath(DataPath, typeof(MonsterMaster)) as MonsterMaster; if(_data == null) { _data = ScriptableObject.CreateInstance<MonsterMaster>() as MonsterMaster; AssetDatabase.CreateAsset(_data, DataPath); AssetDatabase.Refresh(); } } EditorGUILayout.BeginHorizontal(); #region 要素の追加処理 ================================================================================ Color mainColor = GUI.color; GUI.color = Color.green; if (GUILayout.Button("+", GUILayout.Width(20))) { MonsterData addData = new MonsterData(); MonsterData[] copy = new MonsterData[_data.mons.Count]; Array.Copy(_data.mons.ToArray(), copy, _data.mons.Count); Array.Sort(copy, (MonsterData a, MonsterData b)=>{ return a.id - b.id; }); int newId = (copy!=null && copy.Length>0) ? copy[0].id : 0; // 最小のモンスターIDを探す for (int i=0; i<copy.Length; i++) { if (newId < copy[i].id) { break; } else { newId++; } } addData.id = newId; // データの追加 _data.mons.Insert(newId, addData); } GUI.color = mainColor; #endregion #region コピー処理 ================================================================================ GUI.color = (copyInstance==null) ? Color.white : Color.green; if (GUILayout.Button("copy", GUILayout.Width(50))) { if (selected != -1) { copyInstance = (MonsterData)_data.mons[selected].Clone(); Debug.Log("copy : " + copyInstance.id + " " + copyInstance.name); } } GUI.color = mainColor; #endregion #region ペースト処理 ================================================================================ GUI.color = (copyInstance==null ? Color.white : Color.green); if (GUILayout.Button("paste", GUILayout.Width(50))) { if (selected != -1) { int pasteId = _data.mons[selected].id; copyInstance.id = pasteId; _data.mons[selected] = copyInstance; Debug.Log("paste : " + copyInstance.id + " " + copyInstance.name); } } GUI.color = mainColor; #endregion EditorGUILayout.EndHorizontal(); #region 各要素の編集 ================================================================================ scrollPos = GUILayout.BeginScrollView(scrollPos); Color orgCol = GUI.backgroundColor; // 配置オブジェクトのリストを表示 if (_data != null && _data.mons != null && _data.mons.Count > 0) { for(int i = 0; i < _data.mons.Count; i++) { orgCol = GUI.backgroundColor; GUILayout.BeginHorizontal(); bool prev = i == selected; if (prev) GUI.backgroundColor = Color.magenta; bool flag = GUILayout.Toggle((i == selected), _data.mons[i].id.ToString() + " : " + _data.mons[i].j_name, "BoldLabel"); GUI.backgroundColor = orgCol; if (GUILayout.Button("Edit",GUILayout.Width(60))) { isEditMode = !isEditMode; selected = i;// 選択中にする } GUI.backgroundColor = Color.red; if (GUILayout.Button("Remove", GUILayout.Width(60))) { // 削除確認のダイアログ bool result = EditorUtility.DisplayDialog( "Remove", "Remove this object.", "OK", "Cancel"); if(result){ _data.mons.RemoveAt(i); GUI.FocusControl(""); } } GUI.backgroundColor = orgCol; EditorGUILayout.EndHorizontal(); if (flag){ selected = i; // 編集モード if (isEditMode){ // TODO : 変数代入のエディタスクリプトを記述 int id_new = EditorGUILayout.IntField("\tid", _data.mons[i].id); if (id_new != _data.mons[i].id) { // すでにIDが使われていないかチェック if (_data.mons.Find(a=>a.id==id_new) == null) _data.mons[i].id = id_new; } _data.mons[i].name = EditorGUILayout.TextField("\tname", _data.mons[i].name); _data.mons[i].j_name = EditorGUILayout.TextField("\tj_name", _data.mons[i].j_name); _data.mons[i].race = EditorGUILayout.TextField("\trace", _data.mons[i].race); _data.mons[i].rarity = EditorGUILayout.IntField("\trarity", _data.mons[i].rarity); _data.mons[i].element = (Element)Enum.ToObject(typeof(Element), EditorGUILayout.EnumPopup("\telement", _data.mons[i].element)); _data.mons[i].level = EditorGUILayout.IntField("\tlevel", _data.mons[i].level); _data.mons[i].b_hp = EditorGUILayout.IntField("\tb_hp", _data.mons[i].b_hp); _data.mons[i].b_atk = EditorGUILayout.IntField("\tb_atk", _data.mons[i].b_atk); _data.mons[i].b_def = EditorGUILayout.IntField("\tb_def", _data.mons[i].b_def); _data.mons[i].b_spd = EditorGUILayout.IntField("\tb_spd", _data.mons[i].b_spd); _data.mons[i].b_crate = EditorGUILayout.IntField("\tb_crate", _data.mons[i].b_crate); _data.mons[i].b_cdmg = EditorGUILayout.IntField("\tb_cdmg", _data.mons[i].b_cdmg); _data.mons[i].b_res = EditorGUILayout.IntField("\tb_res", _data.mons[i].b_res); _data.mons[i].b_acc = EditorGUILayout.IntField("\tb_acc", _data.mons[i].b_acc); } } else{ // トグルを二度押ししたら非選択状態にする if (prev){ selected = -1; isEditMode = false; } } GUI.color = orgCol; } } #endregion // スクロールバー終了 GUILayout.EndScrollView(); // Apply Data ScriptableObject scriptable = AssetDatabase.LoadAssetAtPath(DataPath, typeof(ScriptableObject)) as ScriptableObject; EditorUtility.SetDirty(scriptable); }