private void CreateCard() { if (entryType != null && entryAmount != 0) { manaTypes.Add(entryType); amounts.Add(entryAmount); entryType = null; entryAmount = 0; } if (selected == 0) { return; } else if (selected == 1) { CreateCostly(); } else if (selected == 2) { CreateCommander(); } else if (selected == 3) { CreateUnit(); } AssetDatabase.CreateAsset(gO, "Assets/Cards/" + cardName + ".asset"); ClearEntryVariables(); }
private void DisplayManaAmountEntryForm() { if (amounts.Count > 0 && manaTypes.Count > 0) { for (int i = 0; i < manaTypes.Count; i++) { EditorGUI.indentLevel = 2; GUILayout.BeginHorizontal(GUILayout.Width(entryAreaWidth)); manaTypes[i] = (ManaType)EditorGUILayout.ObjectField(manaTypes[i], typeof(ManaType), false); amounts[i] = EditorGUILayout.IntField(amounts[i]); GUILayout.EndHorizontal(); } } EditorGUI.indentLevel = 2; GUILayout.BeginHorizontal(GUILayout.Width(entryAreaWidth + buttonWidth)); entryType = (ManaType)EditorGUILayout.ObjectField(entryType, typeof(ManaType), false); entryAmount = EditorGUILayout.IntField(entryAmount); if (GUILayout.Button(addManaCostButton, GUILayout.Width(buttonWidth))) { if (entryType != null && entryAmount != 0) { manaTypes.Add(entryType); amounts.Add(entryAmount); entryType = null; entryAmount = 0; } } GUILayout.EndHorizontal(); }
public void Add(ManaType type, int amount = 1, ManaRestriction restriction = null) { for (int i = 0; i < amount; i++) { this.ManaFragments.Add(ManaFragment.Get(type, restriction)); } }
public GUITexture this[ManaType manatype] { get { return(this.manacrystals[(int)manatype]); } }
public GUITexture this[ManaType manatype] { get { return this.manacrystals[(int)manatype]; } }
public static void ManaDictionaryField(string label, ManaValueDictionary dictionary) { if (dictionary == null) { dictionary = new ManaValueDictionary(); } EditorGUILayout.LabelField(label); if (dictionary.Count > 0) { for (int i = 0; i < dictionary.Count; i++) { EditorGUI.indentLevel += 1; GUILayout.BeginHorizontal(); dictionary.FirstValues[i] = (ManaType)EditorGUILayout.ObjectField(dictionary.FirstValues[i], typeof(ManaType), false); dictionary.SecondValues[i] = EditorGUILayout.IntField(dictionary.SecondValues[i]); GUILayout.EndHorizontal(); } } GUILayout.BeginHorizontal(); type = (ManaType)EditorGUILayout.ObjectField(type, typeof(ManaType), false); amount = EditorGUILayout.IntField(amount); GUILayout.EndHorizontal(); ShowButtons(dictionary); }
private void HeroEnter() { ManaType selfType = ((ManaItem)item).mType; ManaCollector.Instance.Add(selfType); //Logger.LogDebug("Eat a mana source"); Destroy(gameObject); }
public void ModifyCost(ManaType type, int amount) { currentCost.Add(type, amount); if (OnValueChange != null) { OnValueChange.Invoke(); } }
public static ManaActive Create(Transform parent, ManaType t, bool highlight = false) { var go = new GameObject("mana_active"); go.AddComponent <ManaActive>().HandleMana(t, highlight); go.transform.SetParent(parent); go.transform.localPosition = Vector3.zero; go.transform.localScale = Vector2.one; return(go.GetComponent <ManaActive>()); }
private bool Cost(ManaType mType, int amount = 1) { if (amount < 0) { throw new ArgumentException(); } else if (amount == 0) { return(true); } if (mType != ManaType.C) { if (mana_pool.TryGetValue(mType, out int n)) { if (n >= amount) { mana_pool[mType] = n - amount; mana_sum -= amount; _remove_mana_go(mType, amount); return(true); } } return(false); } else // cost any color { if (mana_sum < amount) { return(false); } else { int remains = amount; foreach (var k in mana_pool.Keys.ToArray()) { if (mana_pool[k] < remains) { remains -= mana_pool[k]; _remove_mana_go(k, mana_pool[k]); mana_pool[k] = 0; } else { mana_pool[k] -= remains; _remove_mana_go(k, remains); remains = 0; break; } } mana_sum -= amount; return(true); } } }
public static ManaType?GetOpposite(this ManaType @this) { switch (@this) { case ManaType.Metal: case ManaType.Ice: case ManaType.Grey: return(null); case ManaType.Lightning: return(ManaType.Sand); case ManaType.Sand: return(ManaType.Light); case ManaType.Air: return(ManaType.Earth); case ManaType.Fire: return(ManaType.Water); case ManaType.Earth: return(ManaType.Air); case ManaType.Water: return(ManaType.Fire); case ManaType.Umbral: return(ManaType.Light); case ManaType.Light: return(ManaType.Umbral); case ManaType.Life: return(ManaType.Death); case ManaType.Death: return(ManaType.Life); case ManaType.Mental: return(ManaType.Perception); case ManaType.Perception: return(ManaType.Mental); case ManaType.Transference: return(ManaType.Enhancement); case ManaType.Enhancement: return(ManaType.Transference); default: throw new ArgumentOutOfRangeException(nameof(@this), @this, null); } }
public void HandleMana(ManaType t) { if (Sprites.TryGetValue(t, out var s)) { sr.sprite = s; } else { Logger.LogError($"Sprites Contains {t} Key? {Sprites.ContainsKey(t)}"); } }
public static ManaFragment Get(ManaType type, ManaRestriction restriction = null) { var key = new Tuple <ManaType, ManaRestriction>(type, restriction); ManaFragment val; if (!_dict.TryGetValue(key, out val)) { val = new ManaFragment(type, restriction); _dict[key] = val; } return(val); }
private void SetDominantMana() { int i = 0; foreach (ManaType type in PlayerMana.FirstValues) { if (PlayerMana[type] > i) { DominantMana = type; i = PlayerMana[type]; } } }
public void HandleMana(ManaType t, bool highlight = false) { var dict = highlight ? SpritesHighlight : Sprites; if (dict.TryGetValue(t, out var s)) { sr.sprite = s; } else { Logger.LogError($"Sprites Contains {t} Key? {Sprites.ContainsKey(t)}"); } MType = t; }
private static void ShowButtons(ManaValueDictionary dictionary) { EditorGUILayout.BeginHorizontal(); if (GUILayout.Button(addButtonContent, EditorStyles.miniButton, GUILayout.Width(buttonWidth))) { dictionary.Add(type, amount); type = null; amount = 0; } if (GUILayout.Button(deleteButtonContent, EditorStyles.miniButton, GUILayout.Width(buttonWidth))) { dictionary.RemoveAt(dictionary.Count - 1); } }
private void ConvertStringToManaCost(String strCost, ref Dictionary <ManaType, int> mana) { for (ManaType type = ManaType.COMMON; type < ManaType.MANA_TYPE_MAX; ++type) { if (mana.ContainsKey(type) == true) { int value = mana[type]; mana[type] = value + 1; } else { int cost = Int32.Parse(strCost.Substring((int)type, 1)); if (cost != 0) { mana.Add(type, cost); } } } }
private void Start() { string reqStr = ((ItemDef.ManaRequirement)item).Requires; if (!string.IsNullOrEmpty(reqStr)) { Dictionary <ManaType, int> r = new Dictionary <ManaType, int>(); try { for (int i = 0; i < reqStr.Length; i++) { char c = reqStr[i]; ManaType t = (ManaType)Enum.Parse(typeof(ManaType), c.ToString()); if (r.ContainsKey(t)) { r[t]++; } else { r.Add(t, 1); } } require = r; } catch (Exception e) { Logger.LogError("ManaRequire Parse Error"); Logger.LogError(e); } } else { Logger.LogDebug("Not Set Requirement"); } if (require == null) { require = new Dictionary <ManaType, int> { { ManaType.U, 2 }, { ManaType.G, 3 }, { ManaType.R, 1 }, { ManaType.C, 3 }, }; ((ItemDef.ManaRequirement)item).Requires = "UUGGGRCCC"; } UpdateRequire(); }
private void _remove_mana_go(ManaType t, int amount = 1) { List <Mana.ManaActive> toRemove = null; if (t != ManaType.C) { toRemove = manas.Where(x => (x != null && x.MType == t)).ToList(); } else { toRemove = manas.Where(x => (x != null && x.MType != t)).ToList(); } for (int i = 0; i < amount; i++) { //GameObject target = toRemove[0].gameObject; manas.Remove(toRemove[i]); toRemove[i].CostSelf(); //toRemove.Remove(toRemove[0]); } }
public void Add(ManaType mType, int amount = 1) { if (amount < 0) { throw new ArgumentException(); } if (mana_pool.TryGetValue(mType, out int n)) { mana_pool[mType] = n + amount; } else { mana_pool.Add(mType, amount); } mana_sum += amount; for (int i = 0; i < amount; i++) { manas.Add(Mana.ManaActive.Create(gameObject.transform, mType)); } Logger.LogDebug($"Mana Pool Add - {mType} amount:{amount}"); }
private ManaFragment(ManaType type, ManaRestriction restriction) { this.ManaType = type; this.ManaRestriction = restriction; }
private void ConvertStringListToManaCost(List <String> costList, ref Dictionary <ManaType, int> mana) { foreach (String str in costList) { String strLower = str.ToLower(); int cost = 1; ManaType type = ManaType.MANA_TYPE_MAX; if (strLower == "white") { type = ManaType.WHITE; } else if (strLower == "red") { type = ManaType.RED; } else if (strLower == "blue") { type = ManaType.BLUE; } else if (strLower == "green") { type = ManaType.GREEN; } else if (strLower == "black") { type = ManaType.BLACK; } else { if (strLower == "white or red" || strLower == "red or white") { type = ManaType.WHITE_RED; } else if (strLower == "white or blue" || strLower == "blue or white") { type = ManaType.WHITE_BLUE; } else if (strLower == "white or green" || strLower == "green or white") { type = ManaType.WHITE_GREEN; } else if (strLower == "white or black" || strLower == "black or white") { type = ManaType.WHITE_BLACK; } else if (strLower == "blue or red" || strLower == "red or blue") { type = ManaType.RED_BLUE; } else if (strLower == "green or red" || strLower == "red or green") { type = ManaType.RED_GREEN; } else if (strLower == "red or black" || strLower == "black or red") { type = ManaType.RED_BLACK; } else if (strLower == "blue or green" || strLower == "green or blue") { type = ManaType.BLUE_GREEN; } else if (strLower == "blue or black" || strLower == "black or blue") { type = ManaType.BLUE_BLACK; } else if (strLower == "green or black" || strLower == "black or green") { type = ManaType.GREEN_BLACK; } else if (strLower == "variable colorless") { type = ManaType.COMMON_X; } else { type = ManaType.COMMON; cost = Int32.Parse(str); } } if (mana.ContainsKey(type) == true) { int value = mana[type]; mana[type] = value + 1; } else { mana.Add(type, cost); } } }
private string ParseServerActorListCBT1(Packet <int> p) { string parse = string.Empty; switch (p.ID) { case 0x03: { parse += string.Format("MapInstanceID:{0}\r\n", p.GetUInt(6)); short count = p.GetShort(14); parse += string.Format("Count:{0}\r\n", count); for (int i = 0; i < count; i++) { ulong actorID = p.GetULong(); if (actorID > 0x4000000000000) { p.GetBytes(5); ushort npcID = Global.LittleToBigEndian(p.GetUShort()); p.GetBytes(11); parse += string.Format("NPC ActorID:0x{0:X} NPCID:{1}\r\n", actorID, npcID); } else { Race race = (Race)p.GetByte(); Gender gender = (Gender)p.GetByte(); Job job = (Job)p.GetByte(); p.GetBytes(11); string name = Encoding.Unicode.GetString(p.GetBytes((ushort)((p.GetUShort() + 1) * 2))).Trim('\0'); parse += string.Format("PC ActorID:0x{0:X} Race:{1} Gender:{2} Job:{3} Name:{4}\r\n", actorID, race, gender, job, name); } } } break; case 0x04: { parse += string.Format("MapInstanceID:{0}\r\n", p.GetUInt(6)); short count = p.GetShort(14); parse += string.Format("Count:{0}\r\n", count); for (int i = 0; i < count; i++) { ulong actorID = p.GetULong(); uint mapID = p.GetUInt(); ushort x = p.GetUShort(); ushort y = p.GetUShort(); ushort z = p.GetUShort(); ushort dir = p.GetUShort(); byte level = p.GetByte(); p.GetInt(); int hp = p.GetInt(); int mp = p.GetInt(); p.GetUShort(); ManaType mana = (ManaType)p.GetInt(); p.GetBytes(61); byte friendly = p.GetByte(); int maxHP = p.GetInt(); ushort maxMP = p.GetUShort(); if (actorID > 0x4000000000000) { p.GetBytes(9); int motion = p.GetInt(); p.GetBytes(26); parse += string.Format("NPC ActorID:0x{0:X} Friendly:{13} MapID:{1} Pos:{2},{3},{4} Dir:{5} Level:{6} HP:{7}/{8} MP: {9}/{10} ManaType:{11} Motion:{12}\r\n", actorID, mapID, x, y, z, dir, level, hp, maxHP, mp, maxMP, mana, motion, friendly); } else { p.GetBytes(39); parse += string.Format("PC ActorID:0x{0:X} MapID:{1} Pos:{2},{3},{4} Dir:{5} Level:{6} HP:{7}/{8} MP: {9}/{10} ManaType:{11}\r\n", actorID, mapID, x, y, z, dir, level, hp, maxHP, mp, maxMP, mana); } } } break; } return(parse); }
public void SaveCardData() { if (Directory.Exists(m_cardDataDir) == false) { Directory.CreateDirectory(m_cardDataDir); } foreach (KeyValuePair <eExpansion, Dictionary <String, CardData> > cardList in m_CardList) { String expansion = cardList.Key.ToString(); StringBuilder filePath = new StringBuilder(m_cardDataDir); filePath.Append(expansion); filePath.Append(".xml"); XmlTextWriter writer = new XmlTextWriter(filePath.ToString(), Encoding.UTF8); writer.Formatting = Formatting.Indented; writer.WriteStartDocument(); writer.WriteStartElement("CardList"); foreach (KeyValuePair <String, CardData> card in cardList.Value) { Dictionary <ManaType, int> cost = card.Value.GetManaCost(); StringBuilder strMana = new StringBuilder(); for (ManaType type = 0; type < ManaType.MANA_TYPE_MAX; ++type) { if (cost.ContainsKey(type)) { strMana.Append(cost[type].ToString()); } else { strMana.Append("0"); } } List <String> typeList = card.Value.GetCardTypes(); StringBuilder strTypes = new StringBuilder(); foreach (String type in typeList) { strTypes.Append(type); if (typeList.Last() != type) { strTypes.Append(" "); } } writer.WriteStartElement("Card"); writer.WriteAttributeString("ID", card.Value.GetCardID()); writer.WriteAttributeString("Name", card.Value.GetCardName()); writer.WriteAttributeString("ManaCost", strMana.ToString()); writer.WriteAttributeString("CMC", card.Value.GetCMC().ToString()); writer.WriteAttributeString("Type", strTypes.ToString()); writer.WriteAttributeString("Text", card.Value.GetText()); writer.WriteAttributeString("Expansion", card.Value.GetCardSet()); writer.WriteAttributeString("Rarity", card.Value.GetRarity().ToString()); writer.WriteAttributeString("ImagePath", card.Value.GetImagePath()); writer.WriteEndElement(); } writer.WriteEndElement(); writer.WriteEndDocument(); writer.Flush(); writer.Close(); } }
public void AddMana(ManaType type) { type = ManaType.Green; playerManaCount++; inUse = false; }
public void ModifyContribution(ManaType type, int amount) { card.Contribution.Add(type, amount); }
private void Awake() { currentLifePoints = player.LifePoints; DominantMana = PlayerMana.GetFirstMana(); }