public GameObject Create(CreatureInfo info, GameObject effect = null) { var pos = GetRandomPosition(); if (info.height > 0) { pos.y = root.position.y + info.height; } var obj = Instantiate(info.creaturePrefab, root) as GameObject; obj.transform.position = pos; obj.transform.eulerAngles = new Vector3(0, info.angle.rand, 0); if (info.effect != null) { CreateEffectOn(info.effect, pos, obj.transform, info.col); } else if (effect != null) { CreateEffectOn(effect, pos, obj.transform, info.col); } return(obj); }
public static CreatureInfo ToCreatureInfo(this PRoleAttr attr, CreatureInfo info) { if (attr == null) { return(info); } info.strength = (int)attr.power[0]; info.artifice = (int)attr.tenacious[0]; info.vitality = (int)attr.energy[0]; info.maxHealth = (int)attr.maxHp[0]; info.health = info.maxHealth; info.attack = (int)attr.attack[0]; info.offAttack = (int)attr.gunAttack[0]; info.defense = (int)attr.defense[0]; info.maxRage = attr.maxMp[0]; info.critMul = attr.knock[0]; info.crit = attr.knockRate[0]; info.resilience = attr.artifice[0]; info.attackSpeed = attr.attackSpeed[0]; info.moveSpeed = attr.moveSpeed[0]; info.regenRage = attr.angerSec[0]; info.firm = (int)attr.bone[0]; info.brutality = (int)attr.brutal[0]; info.elementAttack = (int)attr.elementAttack[0]; info.elementDefenseWind = (int)attr.elementDefenseWind[0]; info.elementDefenseFire = (int)attr.elementDefenseFire[0]; info.elementDefenseWater = (int)attr.elementDefenseWater[0]; info.elementDefenseThunder = (int)attr.elementDefenseThunder[0]; info.elementDefenseIce = (int)attr.elementDefenseIce[0]; return(info); }
public void InitStoreItem(pd_StoreItem item) { switch (item.item_type) { case pe_StoreItemType.Item: case pe_StoreItemType.Stuff: case pe_StoreItemType.Rune: case pe_StoreItemType.Token: Clear(); Info = ItemInfoManager.Instance.GetInfoByIdn(item.item_idn); InitIcon(true); break; case pe_StoreItemType.SoulStone: Clear(); Info = ItemInfoManager.Instance.GetInfoByIdn(item.item_idn); InitSoulStoneInternal((Info as SoulStoneInfo), item.item_count); return; case pe_StoreItemType.Creature: m_RewardCreature = CreatureInfoManager.Instance.GetInfoByIdn(item.item_idn); InitCreature(m_RewardCreature, item.item_count); return; } m_count.text = item.item_count.ToString(); m_count.gameObject.SetActive(true); }
public void OnClickEnchant() { if (Tutorial.Instance.Completed == false) { foreach (var reward_base in Tutorial.Instance.CurrentInfo.rewards) { if (reward_base.CreatureInfo == null) { continue; } CreatureInfo info = reward_base.CreatureInfo; Creature enchant_creature = new Creature(-1, info.IDN, 0, (short)reward_base.Value, (short)reward_base.Value3, (short)reward_base.Value2); CreatureManager.Instance.AddTutorialCard(enchant_creature); } } if (m_Creature.Enchant >= 10) { Tooltip.Instance.ShowMessageKey("MaxEquipEnchant"); return; } MenuParams menu = new MenuParams(); menu.AddParam <Creature>(m_Creature); GameMain.Instance.ChangeMenu(GameMenu.HeroEnchant, menu); }
public void ResetRobotAttribute(PRoleAttr roleAttrs, PFashion fashion = null) { CreatureInfo originalInfo = ConfigManager.Get <CreatureInfo>(configID); if (originalInfo == null) { Logger.LogError("configID = {0} connot be loaded,please check out!!", configID); return; } CreatureInfo info = roleAttrs.ToCreatureInfo(originalInfo.Clone <CreatureInfo>()); //如果有时装的话,刷新武器数据 if (fashion != null) { PropItemInfo item = ConfigManager.Get <PropItemInfo>(fashion.weapon); if (item != null) { info.weaponID = item.subType; info.weaponItemID = item.ID; } item = ConfigManager.Get <PropItemInfo>(fashion.gun); if (item != null) { info.offWeaponID = item.subType; info.offWeaponItemID = item.ID; } } UpdateConfig(info); }
public Creature GetPlayerCreature(int creatureId, PNmlPlayer data) { CreatureInfo info = ConfigManager.Get <CreatureInfo>(creatureId); var prop = ConfigManager.Get <PropItemInfo>(data.fashion.weapon); if (prop) { info.weaponID = prop.subType; info.weaponItemID = data.fashion.weapon; } Creature player = Creature.Create(info, Vector3.zero, new Vector3(0f, 90f, 0f), data.roleId.Equals(modulePlayer.roleInfo.roleId), false); if (data.pet != null && data.pet.itemTypeId != 0) { player.pet = PetCreature.Create(player, PetInfo.Create(data.pet), player.position_, player.eulerAngles, false, Module_Home.PET_OBJECT_NAME); if (player.pet != null) { if (!moduleAI.IsStartAI) { moduleAI.StartAI(); } player.pet.DisableSkills(true); moduleAI.AddPetAI(player.pet); } } return(player); }
void InitInternal(CreatureInfo creature_info, int grade, string level_text, string enchant_text, string showAttackType, bool border_bg) { for (int i = 0; i < m_Stars.Length; ++i) { m_Stars[i].gameObject.SetActive(i < grade); } m_Grid.Reposition(); character_border.SetSpriteActive(creature_info != null && creature_info.TeamSkill != null); string sprite_id = creature_info != null ? creature_info.ID : ""; string sprite_name = string.Format("cs_{0}", sprite_id); string new_sprite_name = "_cut_" + sprite_name; UISpriteData sp = m_icon.atlas.CloneCustomSprite(sprite_name, new_sprite_name); if (sp != null) { sp.height = sp.width; } m_icon.spriteName = new_sprite_name; gameObject.name = string.Format("eh_{0}", sprite_id); m_level.text = level_text; m_enchant.text = enchant_text; m_label_in_team.text = TeamDataManager.Instance.GetTeamString(Creature); m_type.spriteName = string.Format("New_hero_info_hero_type_{0}", showAttackType); }
public override void Init(params object[] parms) { gameObject.SetActive(true); m_GridCharacter.GetChildList().ForEach(e => DestroyImmediate(e)); var leader_creature_info = Network.PlayerInfo.leader_creature; foreach (var group in CreatureManager.Instance.Creatures.GroupBy(c => c.Info.IDN)) { foreach (var value in group.Distinct()) { CreatureInfo creature_info = value.Info; DungeonHeroRecommend hero = NGUITools.AddChild(m_GridCharacter.gameObject, m_HeroPrefab).GetComponent <DungeonHeroRecommend>(); hero.Init(creature_info, OnToggleCharacter); } } for (int i = 0; i < 5; ++i) { DungeonHeroRecommend hero = NGUITools.AddChild(m_GridCharacter.gameObject, m_HeroPrefab).GetComponent <DungeonHeroRecommend>(); hero.Init(null); } transform.localPosition = new Vector3(190f, 0f, 0f); if (parms.Length > 0 && parms[0] != null) { m_deleage = parms[0] as EventDelegate; } }
private void ReadWorldPopulations() { if (_currentLine == "Civilized World Population") { _worker.ReportProgress(0, "... World Populations"); ReadLine(); _currentLine = _sitesAndPops.ReadLine(); while (!string.IsNullOrEmpty(_currentLine) && !_sitesAndPops.EndOfStream) { if (string.IsNullOrEmpty(_currentLine)) { _currentLine = _sitesAndPops.ReadLine(); continue; } CreatureInfo population = _world.GetCreatureInfo(_currentLine.Substring(_currentLine.IndexOf(" ", StringComparison.Ordinal) + 1)); string countString = _currentLine.Substring(1, _currentLine.IndexOf(" ", StringComparison.Ordinal) - 1); var count = countString == "Unnumbered" ? int.MaxValue : Convert.ToInt32(countString); _world.CivilizedPopulations.Add(new Population(population, count)); _currentLine = _sitesAndPops.ReadLine(); } _world.CivilizedPopulations = _world.CivilizedPopulations.OrderByDescending(population => population.Count).ToList(); while (_currentLine != "Sites") { _currentLine = _sitesAndPops.ReadLine(); } } if (_currentLine == "Sites") { ReadLine(); ReadLine(); } }
public void Init(bool bBack, C2G.CreatureEvalInitInfoAck init_info = null) { //if (bBack == true) // return; m_InputMessageLabel.defaultText = Localization.Get("EvalInputStartingMsg"); CreatureInfo creature = CreatureInfoManager.Instance.GetInfoByID(creature_id); m_CharacterContainer.Init(AssetManager.GetCharacterAsset(creature_id, "default"), UICharacterContainer.Mode.UI_Normal); m_CharacterContainer.transform.localRotation = Quaternion.Euler(0f, 0f, 0f); m_CharacterContainer.SetPlay(UICharacterContainer.ePlayType.Social); item_list = new List <pd_CreatureEvalBoard>(); item_list = init_info.board_info; last_loaded_count = item_list.Count(i => i.is_best == false); DrawItems(); m_ScoreToggle.value = (CreatureBookManager.Instance.IsExistBook(creature.IDN)); m_EvalScoreLabel.text = string.Format("({0})", info.avg_score.ToString("F1")); m_FirstObtainerLabel.text = string.IsNullOrEmpty(info.first_obtainer_nickname) ? Localization.Get("EvalNoneFirstObtainer") : info.first_obtainer_nickname; m_CharacterNameLabel.text = creature.Name; for (int i = 0; i < m_Stars.Count; ++i) { m_Stars[i].SetSpriteActive(Math.Truncate(init_info.avg_score) > i); } m_EvalBoardScroll.ResetPosition(); }
public void InitCharacter(H2C.NotifyLootCreature packet) { m_CreatureInfo = CreatureInfoManager.Instance.GetInfoByIdn(packet.creature_idn); CharacterContainer.Init(AssetManager.GetCharacterAsset(m_CreatureInfo.ID, m_CreatureInfo.GetSkinName(packet.skin_index)), UICharacterContainer.Mode.UI_Normal); CharacterContainer.transform.localRotation = Quaternion.Euler(0f, 0f, 0f); CharacterContainer.SetPlay(UICharacterContainer.ePlayType.Social); if (m_CreatureInfo.TeamSkill != null) { if (m_TeamSkill.atlas.Contains(m_CreatureInfo.TeamSkill.ID) == true) { m_TeamSkill.spriteName = m_CreatureInfo.TeamSkill.ID; } else { m_TeamSkill.spriteName = "skill_default"; } m_TeamSkill.gameObject.transform.parent.parent.gameObject.SetActive(true); } else { m_TeamSkill.gameObject.transform.parent.parent.gameObject.SetActive(false); } for (int i = 0; i < m_Stars.Length; ++i) { m_Stars[i].SetSpriteActive(packet.creature_grade > i); m_Stars[i].gameObject.SetActive(packet.creature_grade > i); } m_CreatureTitle.text = m_CreatureInfo.Name; List <SkillInfo> active_skills = m_CreatureInfo.Skills.Where(s => s.Type == eSkillType.active && s.ActionName.Equals("attack") == false).ToList(); for (int i = 0; i < m_ActiveSkills.Length; ++i) { bool active = i < active_skills.Count; m_ActiveSkills[i].gameObject.SetActive(active); if (active) { m_ActiveSkills[i].Init(active_skills[i]); } } List <SkillInfo> passive_skills = m_CreatureInfo.Skills.Where(s => s.Type == eSkillType.passive).ToList(); for (int i = 0; i < m_PassiveSkills.Length; ++i) { bool active = i < passive_skills.Count; m_PassiveSkills[i].gameObject.SetActive(active); if (active) { m_PassiveSkills[i].Init(passive_skills[i]); } } m_StarGrid.Reposition(); }
public Squad(CreatureInfo race, int numbers, int deaths, int site, int population) { Race = race; Numbers = numbers; Deaths = deaths; Site = site; Population = population; }
public GameObject GetPlayerObj(PlayerRoleType type, GameObject obj) { CreatureInfo info = saveData.creatureInfos[(int)type] == null || saveData.creatureInfos[(int)type].idName == "Test" ? GameManager.instance.jsonManager.creatureInfoDict[Enum.GetName(type.GetType(), type)] : saveData.creatureInfos[(int)type]; return(info.ApplyTo(obj)); }
private string GetCreatureInfo(CreatureInfo creature) { return("Name: " + creature.Name + Environment.NewLine + "Damage: " + creature.Damage + Environment.NewLine + "Health: " + creature.MaxHealth + Environment.NewLine + "Speed: " + creature.Speed + Environment.NewLine + "Type: " + creature.Type); }
private bool ReadCiv() { string civName = _currentLine.Substring(0, _currentLine.IndexOf(",", StringComparison.Ordinal)); CreatureInfo civRace = _world.GetCreatureInfo(_currentLine.Substring(_currentLine.IndexOf(",", StringComparison.Ordinal) + 2, _currentLine.Length - _currentLine.IndexOf(",", StringComparison.Ordinal) - 2).ToLower()); var entities = _world.Entities .Where(entity => string.Compare(entity.Name, civName, StringComparison.OrdinalIgnoreCase) == 0).ToList(); if (entities.Count == 1) { _currentCiv = entities.First(); } else if (!entities.Any()) { _world.ParsingErrors.Report($"Couldn\'t Find Entity by Name:\n{civName}"); } else { var possibleEntities = entities.Where(entity => entity.Race == civRace).ToList(); if (possibleEntities.Count == 1) { _currentCiv = possibleEntities.First(); } else if (!possibleEntities.Any()) { _world.ParsingErrors.Report($"Couldn\'t Find Entity by Name and Race:\n{civName}"); } else { var possibleCivilizations = possibleEntities.Where(entity => entity.Type == EntityType.Civilization).ToList(); if (possibleCivilizations.Count == 1) { _currentCiv = possibleEntities.First(); } else { #if DEBUG _world.ParsingErrors.Report($"Ambiguous Civilizations ({entities.Count}) Name:\n{civName}"); #endif } } } if (_currentCiv != null) { _currentCiv.Race = civRace; foreach (Entity group in _currentCiv.Groups) { group.Race = _currentCiv.Race; } _currentCiv.IsCiv = true; _currentCiv.Type = EntityType.Civilization; } ReadLine(); return(true); }
static public string GetProfileName(this pd_LeaderCreatureInfo info) { CreatureInfo creature_info = CreatureInfoManager.Instance.GetInfoByIdn(info.leader_creature_idn); if (info.leader_creature_skin_index == 0) { return(string.Format("profile_{0}", creature_info.ID)); } return(string.Format("profile_{0}_{1}", creature_info.ID, creature_info.GetSkinName(info.leader_creature_skin_index))); }
public bool CheckConditionManaFull(CreatureInfo creature) { if (CurrentInfo != null && CurrentInfo.Condition != null && CurrentInfo.Condition.Type == eConditionType.ManaFull && CurrentInfo.Condition.CreatureID == creature.ID) { return(true); } return(false); }
public void DisplayCreatureData(IInfoDisplayable infoDisplayable) { CreatureInfo info = infoDisplayable.GetCreatureInfo(); RankText.text = info.rank.ToString(); NameText.text = info.name; StateText.text = info.currState.ToString(); HealthText.text = info.currHealth.ToString(); HungryText.text = info.currHungry.ToString(); AgeText.text = ((int)(info.currAge)).ToString(); }
public void Init(BattleEndCreature creature) { Creature = creature.Creature; CreatureInfo = null; InitInternal(creature.Creature.Info, creature.Creature.Grade, creature.Creature.GetLevelText(), creature.Creature.GetEnchantText(), creature.Creature.Info.ShowAttackType, true); m_toggle.value = false; gameObject.SetActive(true); m_Recommend.gameObject.SetActive(false); }
void Clear() { Info = null; m_RewardCreature = null; m_creature.SetActive(false); for (int i = 0; i < m_contents.childCount; ++i) { m_contents.GetChild(i).gameObject.SetActive(false); } System.Array.ForEach(m_Notifies, e => e.SetActive(false)); }
/// <summary> /// Create a creature at position pos and set direction to direction from creature info. /// </summary> /// <returns></returns> public Creature Create(CreatureInfo info, Vector3 pos, CreatureDirection direction) { var node = Level.current.startPos; var creature = Creature.Create(info, pos, false, info.name); creature.direction = direction; Util.AddChild(node, creature.transform, true); return(creature); }
//--------------------------------------------------------------------------- public void Init(Creature creature, bool is_checked, bool recommend, OnToggleCharacterDelegate _del = null, OnDeepTouchCharacterDelegate _deep = null) { Creature = creature; CreatureInfo = creature.Info; gameObject.SetActive(true); OnToggleCharacter = _del; OnDeepTouchCharacter = _deep; InitInternal(creature.Info, creature.Grade, creature.GetLevelText(), creature.GetEnchantText(), creature.Info.ShowAttackType, true); m_toggle.value = is_checked; m_Recommend.gameObject.SetActive(recommend); }
public void InitDummy(CreatureInfo creature_info, short grade, short level, short enchant, string show_attack_type) { Creature = null; CreatureInfo = creature_info; gameObject.SetActive(true); OnToggleCharacter = null; OnDeepTouchCharacter = null; InitInternal(creature_info, grade, Localization.Format("HeroLevel", level), Localization.Format("HeroEnchant", enchant), show_attack_type, true); m_toggle.value = false; m_Recommend.gameObject.SetActive(false); }
public void Init(CreatureInfo creature_info, bool is_checked = false, bool recommend = false, OnToggleCharacterDelegate _del = null, OnDeepTouchCharacterDelegate _deep = null) { Creature = null; CreatureInfo = creature_info; gameObject.SetActive(true); OnToggleCharacter = _del; OnDeepTouchCharacter = _deep; InitInternal(creature_info, 1, "", "", creature_info.ShowAttackType, true); m_toggle.value = is_checked; m_Recommend.gameObject.SetActive(recommend); }
private void PrintPopulationEntry(CreatureInfo creatureInfo, int count) { if (count == int.MaxValue) { Html.AppendLine("<li>Unnumbered " + creatureInfo.NamePlural + "</li>"); } else if (count == 1) { Html.AppendLine("<li>" + count + " " + creatureInfo.NameSingular + "</li>"); } else { Html.AppendLine("<li>" + count + " " + creatureInfo.NamePlural + "</li>"); } }
public void ReadPopulations() { List <Population> populations = new List <Population>(); while (!SiteStart() && _currentLine != "") { CreatureInfo race = _world.GetCreatureInfo(_currentLine.Substring(_currentLine.IndexOf(' ') + 1)); int count = Convert.ToInt32(_currentLine.Substring(1, _currentLine.IndexOf(' ') - 1)); populations.Add(new Population(race, count)); ReadLine(); } _site.Populations = populations.OrderByDescending(pop => pop.Count).ToList(); _owner?.AddPopulations(populations); _world.SitePopulations.AddRange(populations); }
bool OnToggleCharacter(CreatureInfo hero) { var leader_creature = new PacketInfo.pd_LeaderCreatureInfo { leader_creature_idn = hero.IDN, leader_creature_skin_index = 0 }; Network.Instance.SetLeader(leader_creature); Network.PlayerInfo.leader_creature = leader_creature; GameMain.Instance.UpdatePlayerInfo(); if (m_deleage != null) { m_deleage.Execute(); } Close(); return(true); }
public static RobotCreature Create(CreatureInfo info, Vector3_ pos, Vector3 rot, string name = "", string uiName = "") { if (info == null) { Logger.LogError("RobotCreature::Create: Create robot failed, invalid config"); return(null); } var rootNode = new GameObject().transform; if (!CreateMorphNodes(info, rootNode)) { Logger.LogError("RobotCreature::Create: Create robot [{0}:{1}] failed, main model [{2}] not loaded", info.ID, info.name, CreatureInfo.GetMorphModelName(info.models, 0)); return(null); } rootNode.position = pos; rootNode.eulerAngles = rot; // Protect invalid weapon config if (info.weaponID < 1) { info.weaponID = 1; info.weaponItemID = 1101; } var c = Create <RobotCreature>(string.IsNullOrEmpty(name) ? info.name : name, rootNode.gameObject); c.InitPosition(pos); c.isPlayer = false; c.isMonster = false; c.isRobot = true; c.isCombat = true; c.creatureCamp = CreatureCamp.MonsterCamp; // 机器人默认必须是怪物的阵营 c.uiName = string.IsNullOrEmpty(uiName) ? c.name : uiName; c.isDead = false; c.realDead = false; c.useSpringBone = true; c.teamIndex = MonsterCreature.GetMonsterRoomIndex(); c.UpdateConfig(info); c.OnCreate(info.buffs); return(c); }
public void Init(CreatureInfo creature_info, short grade, bool is_block) { m_MyselfObj.SetActive(true); m_BlockObj.gameObject.SetActive(is_block); info = creature_info; this.grade = grade; if (info == null) { return; } gameObject.name = info.ID; string sprite_name = string.Format("cs_{0}", info.ID); if (m_CharacterSprite.atlas.Contains(sprite_name) == false) { sprite_name = "cs_empty"; } string new_sprite_name = "_cut_" + sprite_name; UISpriteData sp = m_CharacterSprite.atlas.CloneCustomSprite(sprite_name, new_sprite_name); if (sp != null) { if (sprite_name == "cs_empty") { sp.y += (sp.height - sp.width) / 2; } sp.height = sp.width; } m_CharacterSprite.spriteName = new_sprite_name; m_CharacterType.spriteName = string.Format("New_hero_info_hero_type_{0}", info.ShowAttackType); m_CharacterBoarder.SetSpriteActive(info.TeamSkill != null); m_CharacterLabel.text = info.Name; for (int i = 0; i < m_Stars.Count; ++i) { m_Stars[i].gameObject.SetActive(grade > i); } m_GridStars.gameObject.SetActive(true); m_GridStars.Reposition(); }
void InitCreatureInfo(CreatureInfo info) { gameObject.name = info.ID; string sprite_name = string.Format("cs_{0}", info.ID); string new_sprite_name = "_cut_" + sprite_name; UISpriteData sp = m_icon.atlas.CloneCustomSprite(sprite_name, new_sprite_name); if (sp != null) { sp.height = sp.width; } m_icon.spriteName = new_sprite_name; m_type.spriteName = string.Format("New_hero_info_hero_type_{0}", info.ShowAttackType); character_border.SetSpriteActive(info.TeamSkill != null); }