Example #1
0
    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();
    }
Example #2
0
    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;
                    }
                }
            }
        }
    }
Example #3
0
 public PropertyMapsContainer()
 {
     tileEffectMap  = new PropertyTagMap <int, TileEffect>();
     skillEffectMap = new PropertyTagMap <float, ResistanceLevel>();
 }