private void Awake() { if (instance == null) { instance = this; } }
public static void RegisterAbility(SpecialAbility ability) { //abiliites.Add(ability); AbilityHolder holder = new AbilityHolder(ability, ability.targets, ability.source.owner); savedAbilities.Add(holder); //Debug.Log(savedAbilities.Count + " is the list count"); }
private void RemoveAbilityEffect(AbilityHolder savedAbility, Player owner) { if (savedAbility.owner != owner) { return; } savedAbility.ability.ExternalRemoval(savedAbility.targets); savedAbilities.Remove(savedAbility); }
public Vector2 DrawItemState(Vector2 pos, AbilityHolder ability, Vector2 maxSize, Color color) { var abilityState = ability.AbilityState; var bottletype = ability.Ability as Bottle; var itemSize = new Vector2(maxSize.X * 1.5f, maxSize.Y); if (bottletype != null && bottletype.StoredRune != RuneType.None) { var itemTexture = Textures.GetTexture( $"materials/ensage_ui/items/{ability.Name.Replace("item_", "") + "_" + bottletype.StoredRune}.vmat"); Drawing.DrawRect(pos, itemSize, itemTexture); } else { Drawing.DrawRect(pos, itemSize, Textures.GetItemTexture(ability.Name)); } //Drawing.DrawRect(pos, new Vector2(maxSize.X * 70 / 100f, maxSize.Y / 2f), Color.White, true); switch (abilityState) { case AbilityState.Ready: if (ItemDrawCharges) { var chrages = ability.Item.CurrentCharges; if (chrages > 0) { DrawItemCharge(chrages, pos, maxSize); } } break; case AbilityState.NotEnoughMana: var mana = ability.Ability.ManaCost - ability.Owner.Mana; var manaText = ((int)mana).ToString(); DrawAbilityMana(manaText, pos, maxSize); break; case AbilityState.OnCooldown: var cooldown = Math.Min(99, ability.Cooldown + 1); var cdText = ((int)cooldown).ToString(); DrawItemCooldown(cdText, pos, maxSize); break; } Drawing.DrawRect(pos, new Vector2(maxSize.X, maxSize.Y), color, true); return(pos + new Vector2(maxSize.X - 1, 0)); }
public void CreateAbilityBar(List <Ability> abilities) { foreach (Ability ability in abilities) { GameObject abilityHolderGO = Instantiate(abilityHolder); abilityHolderGO.GetComponent <Image>().sprite = ability.abilityData.abilityImage; AbilityHolder aHolder = abilityHolderGO.GetComponent <AbilityHolder>(); aHolder.abilityName = ability.abilityData.abilityName; abilityHolders.Add(aHolder); abilityHolderGO.transform.SetParent(abilityBar.transform); abilityHolder.transform.localPosition = Vector3.zero; abilityHolder.transform.localRotation = Quaternion.identity; abilityHolder.transform.localScale = Vector3.one; } }
private void Update() { for (int i = 0; i < statSlots.Length; i++) { statSlots[i].GetComponent <Image>().color = Color.white; Image img = statSlots[i].GetComponent <Image>(); if (i == 0) { setIcon(img, AbilitySlot.One); } else if (i == 1) { setIcon(img, AbilitySlot.Two); } else if (i == 2) { setIcon(img, AbilitySlot.Three); } else if (i == 3) { setIcon(img, AbilitySlot.Four); } else if (i == 4) { setIcon(img, AbilitySlot.Five); } else if (i == 5) { setIcon(img, AbilitySlot.Six); } } if (selected >= 1) { statSlots[selected - 1].GetComponent <Image>().color = Color.red; } int count = 0; foreach (KeyValuePair <string, Ability> abil in fullSet.Set) { GameObject store = storedAbils.transform.GetChild(count).gameObject; store.GetComponent <Image>().sprite = dict.AbilityIconsAssetBundle.LoadAsset <Sprite>(abil.Value.SpriteFilename); AbilityHolder x = store.GetComponent <AbilityHolder>(); x.ability = abil.Value; count++; } }
public void Add(Ability newAbility) { //Create new ability AbilityHolder newAbilityHolder = new AbilityHolder(); newAbilityHolder.ability = newAbility; newAbilityHolder.abilityUIButton = InstantiateButton(); newAbilityHolder.abilityUIButton.onClick.AddListener(delegate { TaskOnClick(newAbility); }); //Set button Text[] buttonTxt = newAbilityHolder.abilityUIButton.GetComponentsInChildren <Text>() as Text[]; buttonTxt[0].text = newAbility.GetName(); buttonTxt[1].text = newAbility.GetInfo(); //Add new ability to the abilitiys list abilitys.Add(newAbilityHolder); abilityCount++; }
private Vector2 DrawAbilityState(Vector2 pos, AbilityHolder ability, Vector2 maxSize) { var abilityState = ability.AbilityState; var level = ability.Ability.Level; Drawing.DrawRect(pos, maxSize, ability.Texture); if (level > 0) { switch (abilityState) { case AbilityState.Ready: if (ability.Ability.IsInAbilityPhase) { Drawing.DrawRect(pos, maxSize, new Color(255, 255, 0, 50)); } break; case AbilityState.NotEnoughMana: var mana = ability.Ability.ManaCost - ability.Owner.Mana; var manaText = ((int)mana).ToString(); DrawAbilityMana(manaText, pos, maxSize); break; case AbilityState.OnCooldown: var cooldown = ability.Cooldown + 1; var cdText = ((int)cooldown).ToString(); DrawAbilityCooldown(cdText, pos, maxSize); break; } if (ability.MaximumLevel > 1) { DrawAbilityLevel(level, pos, maxSize); } } else { Drawing.DrawRect(pos, maxSize, new Color(0, 0, 0, 125)); } Drawing.DrawRect(pos, maxSize, Color.Black, true); return(pos + new Vector2(maxSize.X, 0)); }
public override void OnInspectorGUI() { serializedObject.Update(); AbilityHolder abilities = (AbilityHolder)target; GUILayout.Space(4); // Static Abilities static_abilities = serializedObject.FindProperty("static_abilities"); // Triggered Ailities triggered_abilities = serializedObject.FindProperty("triggered_abilities"); EditorGUILayout.PropertyField(static_abilities, true); EditorGUILayout.PropertyField(triggered_abilities, true); serializedObject.ApplyModifiedProperties(); GUILayout.Space(4); }
private void DrawingOnOnDraw(EventArgs args) { var pos = new Vector2(PosX.Value.Value, PosY.Value.Value); var startPosition = pos; var size = new Vector2(SizeX * 10, SizeY * 10); if (CanMove) { if (CanMoveWindow(ref pos, size, true)) { PosX.Item.SetValue(new Slider((int)pos.X, 1, 2500)); PosY.Item.SetValue(new Slider((int)pos.Y, 1, 2500)); } } var stageSize = new Vector2(size.X / 7f, size.Y / 5f); var itemSize = new Vector2(stageSize.X / .7f, stageSize.Y); var emptyTexture = Textures.GetTexture("materials/ensage_ui/items/emptyitembg.vmat"); foreach (var heroC in Config.Main.Updater.EnemyHeroes) { if (heroC.DontDraw) { continue; } var hero = heroC.Hero; var startPos = new Vector2(pos.X, pos.Y); Drawing.DrawRect(pos, stageSize, Textures.GetHeroTexture(hero.StoredName())); pos += new Vector2(stageSize.X, 0); for (var i = 0; i < 6; i++) { AbilityHolder item = null; try { item = heroC.Items[i]; } catch (Exception) { // ignored } if (item == null || !item.IsValid) { Drawing.DrawRect(pos, itemSize, emptyTexture); } else { if (DrawOnlyAntiInvisItems) { if (item.Id != AbilityId.item_dust && item.Id != AbilityId.item_gem && item.Id != AbilityId.item_ward_sentry && item.Id != AbilityId.item_ward_dispenser) { Drawing.DrawRect(pos, itemSize, emptyTexture); Drawing.DrawRect(pos, stageSize, Color.White, true); pos += new Vector2(stageSize.X, 0); continue; } } var bottletype = item.Item as Bottle; if (bottletype != null && bottletype.StoredRune != RuneType.None) { var itemTexture = Textures.GetTexture( $"materials/ensage_ui/items/{item.Name.Replace("item_", "") + "_" + bottletype.StoredRune}.vmat"); Drawing.DrawRect(pos, itemSize, itemTexture); } else { Drawing.DrawRect(pos, itemSize, Textures.GetItemTexture(item.Name)); } if (item.AbilityState == AbilityState.OnCooldown) { var cooldown = item.Cooldown + 1; var cdText = ((int)cooldown).ToString(); DrawItemCooldown(cdText, pos, stageSize); } } if (HighLightAntiInvisItems && !DrawOnlyAntiInvisItems && item != null) { if (item.Id == AbilityId.item_dust || item.Id == AbilityId.item_gem || item.Id == AbilityId.item_ward_sentry || item.Id == AbilityId.item_ward_dispenser) { Drawing.DrawRect(pos, stageSize, Color.Red, true); Drawing.DrawRect(pos + new Vector2(1), stageSize - new Vector2(2), Color.Red, true); } else { Drawing.DrawRect(pos, stageSize, Color.White, true); } } else { Drawing.DrawRect(pos, stageSize, Color.White, true); } pos += new Vector2(stageSize.X, 0); } pos = new Vector2(startPos.X, startPos.Y + itemSize.Y); } Drawing.DrawRect(startPosition, size, Color.White, true); }
private void Start() => _abilityHolder = GetComponent <AbilityHolder>();