public void ProccessTags(List <string> tags) { PropertyTagMap <int, TileEffect> ptm = Globals.GetPorpertyMap(); queuedEffects = new Queue <TileEffect>(); foreach (string attrib in type.attributes) { foreach (string tag in tags) { //Do comparison to find out if we need to do anything if (ptm.EntryExists(tag, attrib)) { Tuple <int, TileEffect> tuple = ptm.GetEffect(tag, attrib); int procChance = tuple.ele1; int roll = Random.Range(0, 100); TileEffect effect = tuple.ele2; if (roll <= procChance) { if (SameTileEffect(effect) == false) { queuedEffects.Enqueue((TileEffect)effect.Copy()); //effect.InitEffects(this); //tileEffects.Add((TileEffect)effect.Copy()); //TileEffect.InitTileEffectVisual(this, effect); } } else { // Debug.Log("Roll: " + roll + " Proc Chance: " + procChance); } } } } //ProcessEffectQueue(); }
void ProcessTags(List <string> skillTags, List <string> actorTags) { PropertyTagMap <float, ResistanceLevel> skillEffectMap = Globals.campaign.GetPropertyMaps().skillEffectMap; foreach (string skill in skillTags) { foreach (string actor in actorTags) { if (skillEffectMap.EntryExists(skill, actor)) { Tuple <float, ResistanceLevel> entry = skillEffectMap.GetEffect(skill, actor); if (entry.ele2 == ResistanceLevel.Vulnerable) { deltaH = -Mathf.Abs(deltaH); } else if (entry.ele2 == ResistanceLevel.Immune) { deltaH = 0; } } } } }
public PropertyMapsContainer() { tileEffectMap = new PropertyTagMap <int, TileEffect>(); skillEffectMap = new PropertyTagMap <float, ResistanceLevel>(); }