fanvalen 发表于 2022-8-13 20:19

添加好特质,移除坏特质,替换压力反应,更改喜悦反,应我全都要(密码回帖私你)

本帖最后由 fanvalen 于 2022-10-10 18:18 编辑

通过长时间技术积累,今天终于成功实现上面功能
先看个图

增加后多达39个特质,去掉一个荧光棒


多个喜悦反应同时拥有


如何实现的就是神经振荡器

GeneShuffler.ApplyRandomTrait      振荡器核心

private void ApplyRandomTrait(Worker worker)
      {
                Traits component = worker.GetComponent<Traits>();
                List<string> list = new List<string>();
                foreach (DUPLICANTSTATS.TraitVal traitVal in DUPLICANTSTATS.GENESHUFFLERTRAITS)
                {
                        if (!component.HasTrait(traitVal.id))
                        {
                              list.Add(traitVal.id);
                              Trait trait = Db.Get().traits.TryGet(traitVal.id);
                              worker.GetComponent<Traits>().Add(trait);
                              this.SetConsumed(false);
                        }
                }
                foreach (DUPLICANTSTATS.TraitVal traitVal2 in DUPLICANTSTATS.BADTRAITS)
                {
                        if (component.HasTrait(traitVal2.id))
                        {
                              Trait trait2 = Db.Get().traits.TryGet(traitVal2.id);
                              worker.GetComponent<Traits>().Remove(trait2);
                        }
                }
                foreach (DUPLICANTSTATS.TraitVal traitVal3 in DUPLICANTSTATS.SPECIALTRAITS)
                {
                        if (component.HasTrait(traitVal3.id))
                        {
                              Trait trait3 = Db.Get().traits.TryGet(traitVal3.id);
                              worker.GetComponent<Traits>().Remove(trait3);
                        }
                }
                foreach (DUPLICANTSTATS.TraitVal traitVal4 in DUPLICANTSTATS.GOODTRAITS)
                {
                        if (traitVal4.id != "GlowStick" && !component.HasTrait(traitVal4.id))
                        {
                              Trait trait4 = Db.Get().traits.TryGet(traitVal4.id);
                              worker.GetComponent<Traits>().Add(trait4);
                        }
                }
                foreach (DUPLICANTSTATS.TraitVal traitVal5 in DUPLICANTSTATS.JOYTRAITS)
                {
                        if (!component.HasTrait(traitVal5.id))
                        {
                              Trait trait5 = Db.Get().traits.TryGet(traitVal5.id);
                              worker.GetComponent<Traits>().Add(trait5);
                        }
                }
                foreach (DUPLICANTSTATS.TraitVal traitVal6 in DUPLICANTSTATS.STRESSTRAITS)
                {
                        Trait trait6 = Db.Get().traits.TryGet(traitVal6.id);
                        worker.GetComponent<Traits>().Remove(trait6);
                }
                Trait trait7 = Db.Get().traits.TryGet("UglyCrier");
                worker.GetComponent<Traits>().Add(trait7);
                if (list.Count > 0)
                {
                        return;
                }
                InfoDialogScreen infoDialogScreen = (InfoDialogScreen)GameScreenManager.Instance.StartScreen(ScreenPrefabs.Instance.InfoDialogScreen.gameObject, GameScreenManager.Instance.ssOverlayCanvas.gameObject, GameScreenManager.UIRenderTarget.ScreenSpaceOverlay);
                string text2 = string.Format(UI.GENESHUFFLERMESSAGE.BODY_FAILURE, worker.GetProperName());
                infoDialogScreen.SetHeader(UI.GENESHUFFLERMESSAGE.HEADER).AddPlainText(text2).AddDefaultOK(false);
      }基本算是重写这个功能了那就直接全部替换,
振荡器可无限使用,振荡器带的特质也一次全部加上
压力反应全部改成了大哭,特质数量39个好的(已经是全部了)
喜悦反应5个全有

fanvalen 发表于 2022-8-13 20:23

众多特质里有冲突的特质不生效比如独侠客,整个档只有一个小人才会生效

ww200001 发表于 2022-8-13 21:32

密码是什么啊

fanvalen 发表于 2022-8-13 21:36

ww200001 发表于 2022-8-13 21:32
密码是什么啊

看私聊消息哈

我诞生在中国 发表于 2022-8-14 10:50

谢谢分享

138532 发表于 2022-8-14 21:00

话说 一基地的小人都在发气球怎么整

davidchy327 发表于 2022-8-14 21:17

密码多少?

fanvalen 发表于 2022-8-14 21:33

138532 发表于 2022-8-14 21:00
话说 一基地的小人都在发气球怎么整

人手一个就不发了,不是休闲时间不会发
气球增加移动速度来着
当然你也可以不添加气球喜悦
改进代码
foreach (DUPLICANTSTATS.TraitVal traitVal5 in DUPLICANTSTATS.JOYTRAITS)
                {
                        if (traitVal5.id!="BalloonArtist" &&!component.HasTrait(traitVal5.id))
                        {
                              Trait trait5 = Db.Get().traits.TryGet(traitVal5.id);
                              worker.GetComponent<Traits>().Add(trait5);
                        }
                }

或者改成只添加某个喜悦特质,替换上面代码
foreach (DUPLICANTSTATS.TraitVal traitVal5 in DUPLICANTSTATS.JOYTRAITS)
                {
                        if (component.HasTrait(traitVal5.id))
                        {
                              Trait trait5 = Db.Get().traits.TryGet(traitVal5.id);
                              worker.GetComponent<Traits>().Remove(trait5);
                        }
                }
                               
                               
                               
Trait trait7 = Db.Get().traits.TryGet("SuperProductive");
                worker.GetComponent<Traits>().Add(trait7);


138532 发表于 2022-8-15 20:38

感谢解惑

小奶酒 发表于 2022-8-16 17:26

密码多少呀

胖子11 发表于 2022-8-23 00:38

亲密码,谢谢

201124159 发表于 2022-9-4 23:40

回去了我也试试

1415454544@qq.c 发表于 2022-9-6 20:36

密码
!!!

初春微寒 发表于 2022-9-7 02:55

顶顶顶顶顶顶

wylcw 发表于 2022-9-27 12:08

有个特质是不能创作,能不能去掉啊

ctar110 发表于 2022-11-20 23:33

密码是什么啊

mutetea 发表于 2023-4-5 19:04

大佬,是有文件吗
页: [1]
查看完整版本: 添加好特质,移除坏特质,替换压力反应,更改喜悦反,应我全都要(密码回帖私你)