コード例 #1
0
        // Token: 0x06002ADD RID: 10973 RVA: 0x00143464 File Offset: 0x00141864
        public override bool CanBeUsedBy(Pawn p, out string failReason)
        {
            bool selected = Find.Selector.SelectedObjects.Contains(p);
            bool flag     = GenCollection.Any <Apparel>(p.apparel.WornApparel, (Apparel x) => x.def == YautjaDefOf.RRY_Equipment_HunterGauntlet);

            if (flag)
            {
                Cloakgen injector = (Cloakgen)p.apparel.WornApparel.Find((Apparel x) => x.def == YautjaDefOf.RRY_Equipment_HunterGauntlet);
                if (injector != null)
                {
                    CompMedicalInjector medicalInjector = injector.TryGetComp <CompMedicalInjector>();
                    if (injector.uses < medicalInjector.Props.Uses)
                    {
                        failReason = null;
                        return(true);
                    }
                    else
                    {
                        failReason = "Injector full";
                        return(false);
                    }
                }
                else
                {
                    failReason = "Not wearing Injector";
                    return(false);
                }
            }
            else
            {
                failReason = "Not wearing Injector";
                return(false);
            }
            return(base.CanBeUsedBy(p, out failReason));
        }
コード例 #2
0
        // Token: 0x06002ADC RID: 10972 RVA: 0x001433C0 File Offset: 0x001417C0
        public override void DoEffect(Pawn user)
        {
            Cloakgen            injector        = (Cloakgen)user.apparel.WornApparel.Find((Apparel x) => x.def == YautjaDefOf.RRY_Equipment_HunterGauntlet);
            CompMedicalInjector medicalInjector = injector.TryGetComp <CompMedicalInjector>();
            bool selected = Find.Selector.SelectedObjects.Contains(user);
            int  needed   = medicalInjector.Props.Uses - injector.uses;

            if (needed > 0)
            {
                if (this.parent.stackCount >= needed)
                {
                    injector.uses          = medicalInjector.Props.Uses;
                    this.parent.stackCount = this.parent.stackCount - needed;
                }
                else if (this.parent.stackCount < needed)
                {
                    injector.uses          = this.parent.stackCount;
                    this.parent.stackCount = 0;
                    this.parent.Destroy();
                }
            }

            //    base.DoEffect(user);
        }