Exemplo n.º 1
0
        public async Task <string> PostAsync(TransformationRequest request)
        {
            var response = string.Empty;
            var result   = await hystrixCommand.ExecuteAsync(
                async() =>
            {
                using (var client = new HttpClient())
                {
                    var content = new StringContent(
                        JsonConvert.SerializeObject(
                            new
                    {
                        idFactura    = request.IdFactura,
                        valorFactura = request.ValorFactura,
                        formato      = request.Formato.ToString(),
                        operacion    = request.Operacion.ToString()
                    }), Encoding.UTF8, "application/json");

                    var resp = await client.PostAsync(requestUrl, content);
                    response = await resp.Content.ReadAsStringAsync();
                }
                return(true);
            });

            return(response);
        }
Exemplo n.º 2
0
        private void DoTf()
        {
            if (_chosenKind == null)
            {
                _chosenKind = DefDatabase <PawnKindDef> .AllDefs.Where(p => p.RaceProps.Animal).RandomElement();
            }
            var tfRequest = new TransformationRequest(_chosenKind, pawn);

            MutagenDefOf.defaultMutagen.MutagenCached.Transform(tfRequest);
        }
Exemplo n.º 3
0
        private TransformationRequest MakeRequest(Pawn innerPawn)
        {
            var animalKind = GetAnimalFor(innerPawn);
            var request    = new TransformationRequest(animalKind, innerPawn, TargetSettings?.ForcedSapienceLevel ?? SapienceLevel.Sapient)
            {
                cause        = null,
                forcedGender = ThingProps.genderTf,
                tale         = ThingProps.taleDef,
            };

            return(request);
        }
Exemplo n.º 4
0
        private void DoTf()
        {
            if (_chosenKind == null)
            {
                _chosenKind = DefDatabase <PawnKindDef> .AllDefs.Where(p => p.RaceProps.Animal).RandomElement();
            }
            var tfRequest = new TransformationRequest(_chosenKind, pawn);
            var res       = MutagenDefOf.defaultMutagen.MutagenCached.Transform(tfRequest);

            if (res != null)
            {
                Find.World.GetComponent <PawnmorphGameComp>().AddTransformedPawn(res);
            }
        }
        private void DoTransformation()
        {
            var target = Targets.RandomElementWithFallback();

            if (target == null)
            {
                return;
            }
            var kind = DefDatabase <PawnKindDef> .AllDefs.FirstOrDefault(k => k.race == target.race);

            if (kind == null)
            {
                return;
            }
            var request = new TransformationRequest(kind, pawn);

            MutagenDefOf.defaultMutagen.MutagenCached.Transform(request);
        }
        /// <summary>Transforms the pawn.</summary>
        /// <param name="pawn">The pawn.</param>
        /// <param name="cause">The cause.</param>
        /// <returns></returns>
        public bool TransformPawn(Pawn pawn, [CanBeNull] Hediff cause)
        {
            var mutagen = cause?.def?.GetMutagenDef() ?? MutagenDefOf.defaultMutagen;

            var request = new TransformationRequest(pawnkinds.RandElement(), pawn)
            {
                forcedGender       = forceGender,
                forcedGenderChance = forceGenderChance,
                cause = cause,
                tale  = tale
            };

            var inst = mutagen.MutagenCached.Transform(request);

            if (inst != null)
            {
                var comp = Find.World.GetComponent <PawnmorphGameComp>();
                comp.AddTransformedPawn(inst);
            }

            return(inst != null);
        }
        private void Resurrect()
        {
            Pawn innerPawn = this.Corpse.InnerPawn;

            ResurrectionUtility.Resurrect(innerPawn); //make sure pawn is alive again

            var                   mutagen     = MutagenDefOf.defaultMutagen;
            PawnKindDef           animalKind  = ThingProps.Animals.RandomElement();
            float                 maxSeverity = ThingProps.makePermanentlyFeral ? 0.01f : 1f;
            TransformationRequest request     = new TransformationRequest(animalKind, innerPawn, maxSeverity)
            {
                cause        = null,
                forcedGender = ThingProps.genderTf,
                tale         = ThingProps.taleDef,
            };

            var tfPawn = mutagen.MutagenCached.Transform(request);

            if (tfPawn != null)
            {
                var comp   = Find.World.GetComponent <PawnmorphGameComp>();
                var oFirst = tfPawn.TransformedPawns.First();
                comp.AddTransformedPawn(tfPawn);
                var messageContent =
                    RESURRECTION_MESSAGE_LABEL.Translate(innerPawn.Named("original"), oFirst.Named("animal"),
                                                         animalKind.Named(nameof(animalKind)))
                    .CapitalizeFirst();
                Messages.Message(messageContent, oFirst, MessageTypeDefOf.PositiveEvent, true);
            }
            else
            {
                Log.Warning($"resurrected pawn {pawn.Name} who cannot be transformed normally! is this intended?");
            }



            //Messages.Message("MessagePawnResurrected".Translate(innerPawn).CapitalizeFirst(), innerPawn, MessageTypeDefOf.PositiveEvent, true);
            this.Item.SplitOff(1).Destroy(DestroyMode.Vanish);
        }
        public override void Apply(LocalTargetInfo target, LocalTargetInfo dest)
        {
            base.Apply(target, dest);

            var transformationRequest = new TransformationRequest(Properties.TargetAnimals.RandElement(), target.Pawn);

            var tfdPawn = MutagenDefOf.defaultMutagen.MutagenCached.Transform(transformationRequest);
            var animal  = tfdPawn?.TransformedPawns.First();

            if (tfdPawn != null)
            {
                Find.World.GetComponent <PawnmorphGameComp>().AddTransformedPawn(tfdPawn);
                Hediff hediff = HediffMaker.MakeHediff(Properties.trackerHediff, animal);
                var    rmComp = hediff.TryGetComp <HediffComp_Disappears>();

                rmComp.ticksToDisappear = GetDurationSeconds(target.Pawn).SecondsToTicks();
                animal.health.AddHediff(hediff);
            }
            else
            {
                Log.Warning($"could not transform target {target.Pawn.Label}");
            }
        }
Exemplo n.º 9
0
        public IActionResult Post([FromBody] TransformationRequest request)
        {
            var document           = request.XmlDocument;
            var transformationSpec = request.XslTransformation;
            var xsltFile           = transformationSpec.Name == "File" ? transformationSpec.Value : null;
            var content            = "";

            if (!string.IsNullOrEmpty(xsltFile))
            {
                content = new XDocument(XsltTransformation.Transform(document, xsltFile)).ToString();
            }
            else
            {
                content = new XDocument(XsltTransformation.Transform(document, transformationSpec)).ToString();
            }

            return(new ContentResult
            {
                Content = content,
                ContentType = "text/xml",
                StatusCode = 200
            });
        }
Exemplo n.º 10
0
        /// <summary>Transforms the pawn.</summary>
        /// <param name="pawn">The pawn.</param>
        /// <param name="cause">The cause.</param>
        /// <returns></returns>
        public bool TransformPawn(Pawn pawn, Hediff cause)
        {
            var mutagen = cause?.def?.GetMutagenDef() ?? MutagenDefOf.defaultMutagen;

            var request = new TransformationRequest(GetPawnKindDefFor(pawn), pawn)
            {
                forcedGender       = forceGender,
                forcedGenderChance = forceGenderChance,
                cause           = cause,
                tale            = transformationTale,
                transformedTick = Find.TickManager?.TicksAbs
            };

            var inst = mutagen.MutagenCached.Transform(request);

            if (inst != null)
            {
                var comp = Find.World.GetComponent <PawnmorphGameComp>();
                comp.AddTransformedPawn(inst);
            }

            return(inst != null);
        }
Exemplo n.º 11
0
        private void TransformPawn(Pawn pawn)
        {
            TransformationRequest request;
            Mutagen mutagen;

            switch (_state)
            {
            case ChamberState.Transforming:
                request = new TransformationRequest(pawnTFKind, pawn)
                {
                    forcedGender              = TFGender.Switch,
                    forcedGenderChance        = 50,
                    manhunterSettingsOverride = ManhunterTfSettings.Never,
                    factionResponsible        = Faction,
                    forcedFaction             = Faction
                };

                mutagen = MutagenDefOf.defaultMutagen.MutagenCached;

                break;

            case ChamberState.MergeInto:
                request = new TransformationRequest(pawnTFKind, pawn, (Pawn)linkTo.innerContainer[0])
                {
                    forcedGender              = TFGender.Switch,
                    forcedGenderChance        = 50,
                    manhunterSettingsOverride = ManhunterTfSettings.Never,
                    factionResponsible        = Faction,
                    forcedFaction             = Faction
                };
                mutagen = MutagenDefOf.MergeMutagen.MutagenCached;
                break;

            case ChamberState.MergeOutOf:
                return;

            case ChamberState.Idle:
            default:
                throw new ArgumentOutOfRangeException();
            }

            TransformedPawn pmInst = mutagen.Transform(request);

            if (pmInst == null)
            {
                Log.Error($"mutagenic chamber could not transform pawns {string.Join(",",request.originals.Select(p => p.Name.ToStringFull).ToArray())} using mutagen {mutagen.def.defName}");

                return;
            }

            SendLetter(pawn);
            base.EjectContents();
            if (_state == ChamberState.MergeInto)
            {
                linkTo.EjectContents();
            }
            foreach (Pawn pmInstOriginalPawn in pmInst.OriginalPawns)
            {
                if (pmInstOriginalPawn == null)
                {
                    continue;
                }
                TransformerUtility.CleanUpHumanPawnPostTf(pmInstOriginalPawn, null);
            }

            foreach (Pawn pmInstOriginalPawn in pmInst.OriginalPawns)
            {
                pmInstOriginalPawn.DeSpawn();
            }

            var comp = Find.World.GetComponent <PawnmorphGameComp>();

            comp.AddTransformedPawn(pmInst);

            Find.TickManager.slower.SignalForceNormalSpeedShort();
            PawnComponentsUtility.AddComponentsForSpawn(pmInst.TransformedPawns.First());
            pawn.ownership.UnclaimAll();
            if (modulator != null)
            {
                modulator.triggered = true;
                if (modulator.merging)
                {
                    modulator.merging = false;
                    modulator.random  = true;
                }
            }

            if (!Destroyed)
            {
                SoundDefOf.CryptosleepCasket_Eject.PlayOneShot(SoundInfo.InMap(new TargetInfo(base.Position, base.Map)));
                fuelComp.ConsumeFuel(fuelComp.Fuel);
            }
        }
Exemplo n.º 12
0
        private void EjectPawn()
        {
            _scratchList.Clear();
            _scratchList.AddRange(innerContainer.OfType <Pawn>());
            var pawn = _scratchList[0] as Pawn;

            if (pawn == null)
            {
                Log.Error("trying to eject empty muta chamber!");
                return;
            }

            EjectContents();
            SelectorComp.Enabled = false;
            TransformationRequest tfRequest;
            Mutagen mutagen = null;

            switch (_currentUse)
            {
            case ChamberUse.Mutation:
                tfRequest = null;
                break;

            case ChamberUse.Merge:
                var otherPawn = (Pawn)_scratchList[1];
                if (otherPawn == null)
                {
                    Log.Error("merging but cannot find other pawn! aborting!");
                    tfRequest = null;
                    break;
                }

                tfRequest = new TransformationRequest(_targetAnimal, pawn, otherPawn)
                {
                    addMutationToOriginal     = false,
                    factionResponsible        = Faction,
                    forcedFaction             = Faction,
                    forcedSapienceLevel       = 1,
                    manhunterSettingsOverride = ManhunterTfSettings.Never
                };
                mutagen = MutagenDefOf.MergeMutagen.MutagenCached;
                break;

            case ChamberUse.Tf:
                PawnKindDef animal = SelectorComp.ChosenKind;
                if (animal == null)
                {
                    animal = GetRandomAnimal();
                }

                tfRequest = new TransformationRequest(animal, pawn)
                {
                    addMutationToOriginal     = true,
                    factionResponsible        = Faction,
                    forcedFaction             = Faction,
                    forcedGender              = TFGender.Original,
                    forcedSapienceLevel       = 1,
                    manhunterSettingsOverride = ManhunterTfSettings.Never
                };
                mutagen = MutagenDefOf.defaultMutagen.MutagenCached;
                break;

            default:
                throw new ArgumentOutOfRangeException();
            }

            if (tfRequest == null)
            {
                return;
            }


            TransformedPawn tfPawn = mutagen.Transform(tfRequest);

            if (tfPawn == null)
            {
                Log.Error($"unable to transform pawn(s)! {_currentUse} {_innerState}");
                return;
            }

            var gComp = Find.World.GetComponent <PawnmorphGameComp>();

            gComp.AddTransformedPawn(tfPawn);
            foreach (Pawn oPawn in tfPawn.OriginalPawns)
            {
                if (oPawn.Spawned)
                {
                    oPawn.DeSpawn();
                }
            }
        }
Exemplo n.º 13
0
        public async Task <string> TransformationCall(TransformationRequest request)
        {
            var result = await _transformationServices.PostAsync(request);

            return(result);
        }