/*
         * public void setLiking(double v)
         * {
         *  liking += v;
         *  if (liking > 100) { liking = 100; }
         *  if (liking < -100) { liking = -100; }
         * }
         */

        public void turnTick(Person me, Person them)
        {
            //if (them == me) { liking = 100; }//Be at least loyal to yourself (till traits override this)

            double baseline = me.getRelBaseline(them);

            rems.Clear();
            foreach (RelEvent ev in events)
            {
                ev.amount *= me.map.param.relObj_decayRate;
                if (Math.Abs(ev.amount) < 2)
                {
                    rems.Add(ev);
                }
            }
            foreach (RelEvent ev in rems)
            {
                events.Remove(ev);
            }
        }
Esempio n. 2
0
        /*
         * public void setLiking(double v)
         * {
         *  liking += v;
         *  if (liking > 100) { liking = 100; }
         *  if (liking < -100) { liking = -100; }
         * }
         */

        public void turnTick(Person me)
        {
            //if (them == me) { liking = 100; }//Be at least loyal to yourself (till traits override this)

            double baseline = me.getRelBaseline(them);

            if (me.state == Person.personState.broken)
            {
                suspicion = 0;
            }                                                            //Broken minds hold no suspicions ever
            if (me.state == Person.personState.enthralled)
            {
                suspicion = 0;
            }                                                                //Broken minds hold no suspicions ever
            if (suspicion > 1 - me.shadow)
            {
                suspicion = 1 - me.shadow;
            }

            List <RelEvent> rems = new List <RelEvent>();

            foreach (RelEvent ev in events)
            {
                if (ev.slowDecay)
                {
                    ev.amount *= me.map.param.relObj_decayRateSlow;
                }
                else
                {
                    ev.amount *= me.map.param.relObj_decayRate;
                }
                if (Math.Abs(ev.amount) < 2)
                {
                    rems.Add(ev);
                }
            }
            foreach (RelEvent ev in rems)
            {
                events.Remove(ev);
            }
        }
Esempio n. 3
0
        public double getLiking(Person me, Person them)
        {
            double liking = me.getRelBaseline(them);

            foreach (RelEvent r in events)
            {
                liking += r.amount;
            }

            liking += getDislikingFromSuspicion(me);

            if (liking > 100)
            {
                liking = 100;
            }
            if (liking < -100)
            {
                liking = -100;
            }
            return(liking);
        }
        public double getLiking()
        {
            double liking = me.getRelBaseline(them);

            liking += getLikingModifiers(me, them, null);
            foreach (RelEvent r in events)
            {
                liking += r.amount;
            }

            liking += getDislikingFromSuspicion();

            if (liking > 100)
            {
                liking = 100;
            }
            if (liking < -100)
            {
                liking = -100;
            }
            return(liking);
        }