From 0442bc89d05ae08135061bfa59853fbd8a016aef Mon Sep 17 00:00:00 2001 From: n0lavar Date: Wed, 24 Jul 2024 18:20:56 +0100 Subject: [PATCH] update readme, add more info to output --- README.md | 347 +++++++++--------- .../configs/items/weapon.json | 2 +- cp_red_npc_generator/src/main.py | 14 +- cp_red_npc_generator/src/utils.py | 10 + 4 files changed, 188 insertions(+), 185 deletions(-) diff --git a/README.md b/README.md index 3434c96..4229605 100644 --- a/README.md +++ b/README.md @@ -135,70 +135,65 @@ cp_red_npc_generator.exe --rank=private --role=solo Possible output: ``` -Solo, Private, seed=541683456 +--rank=private --role=solo --seed=49413376 --flat=None --log_level=INFO Has items total worth of 272 -Conditions: - HP: 25/25 (Seriously Wounded: 13) - Can evade bullets: False - -Stats: - [3] INT - [3] REF - [3] DEX - [2] TECH - [3] COOL - [3] WILL - [2] LUCK - [3] MOVE - [3] BODY - [2] EMP +Stats: Conditions: + [4] INT HP: 25/25 (Seriously Wounded: 13) + [4] REF TraumaTeam status: NONE + [3] DEX Can evade bullets: False + [2] TECH No intangible obscurement penalties: False + [3] COOL Has flashes of light protection: False + [3] WILL Has ears protection: False + [3] LUCK Has breath protection: False + [3] MOVE + [3] BODY + [3] EMP Skills: Education Technique Social - [3(INT)=3] Accounting [2(TECH)=2] AirVehicleTech [3(COOL)=3] Bribery - [3(INT)=3] AnimalHandling [2(TECH)=2] BasicTech [2(EMP)+2=4] Conversation - [3(INT)=3] Bureaucracy [2(TECH)=2] Cybertech [2(EMP)+2=4] HumanPerception - [3(INT)=3] Business [2(TECH)=2] Demolitions [3(COOL)+2=5] Interrogation - [3(INT)=3] Composition [2(TECH)=2] ElectronicsSecurityTech [3(COOL)+2=5] Persuasion - [3(INT)=3] Criminology [2(TECH)+2=4] FirstAid [3(COOL)=3] PersonalGrooming - [3(INT)=3] Cryptography [2(TECH)=2] Forgery [3(COOL)=3] Streetwise - [3(INT)=3] Deduction [2(TECH)=2] LandVehicleTech [3(COOL)=3] Trading - [3(INT)+2=5] Education [2(TECH)=2] PaintDrawSculpt [3(COOL)=3] WardrobeStyle - [3(INT)=3] Gamble [2(TECH)=2] Paramedic Body - [3(INT)=3] LibrarySearch [2(TECH)=2] PhotographyFilm [3(DEX)+2=5] Athletics - [3(INT)+2=5] LocalExpertYourHome [2(TECH)=2] PickLock [3(DEX)=3] Contortionist - [3(INT)+2=5] Tactics [2(TECH)=2] PickPocket [3(DEX)=3] Dance - [3(INT)=3] WildernessSurvival [2(TECH)=2] SeaVehicleTech [3(WILL)=3] Endurance - [3(INT)+2=5] LanguageStreetslang [2(TECH)=2] Weaponstech [3(WILL)+2=5] ResistTortureDrugs - [3(INT)=3] Science Awareness [3(DEX)+2=5] Stealth + [4(INT)=4] Accounting [2(TECH)=2] AirVehicleTech [3(COOL)=3] Bribery + [4(INT)=4] AnimalHandling [2(TECH)=2] BasicTech [3(EMP)+2=5] Conversation + [4(INT)=4] Bureaucracy [2(TECH)=2] Cybertech [3(EMP)+2=5] HumanPerception + [4(INT)=4] Business [2(TECH)=2] Demolitions [3(COOL)+3=6] Interrogation + [4(INT)=4] Composition [2(TECH)=2] ElectronicsSecurityTech [3(COOL)+2=5] Persuasion + [4(INT)=4] Criminology [2(TECH)+3=5] FirstAid [3(COOL)=3] PersonalGrooming + [4(INT)=4] Cryptography [2(TECH)=2] Forgery [3(COOL)=3] Streetwise + [4(INT)=4] Deduction [2(TECH)=2] LandVehicleTech [3(COOL)=3] Trading + [4(INT)+2=6] Education [2(TECH)=2] PaintDrawSculpt [3(COOL)=3] WardrobeStyle + [4(INT)=4] Gamble [2(TECH)=2] Paramedic Body + [4(INT)=4] LibrarySearch [2(TECH)=2] PhotographyFilm [3(DEX)+2=5] Athletics + [4(INT)+2=6] LocalExpertYourHome [2(TECH)=2] PickLock [3(DEX)=3] Contortionist + [4(INT)+3=7] Tactics [2(TECH)=2] PickPocket [3(DEX)=3] Dance + [4(INT)=4] WildernessSurvival [2(TECH)=2] SeaVehicleTech [3(WILL)=3] Endurance + [4(INT)+2=6] LanguageStreetslang [2(TECH)=2] Weaponstech [3(WILL)+3=6] ResistTortureDrugs + [4(INT)=4] Science Awareness [3(DEX)+2=5] Stealth Fighting [3(WILL)+2=5] Concentration Ranged_Weapon - [3(DEX)+2=5] Brawling [3(INT)=3] ConcealRevealObject [3(REF)=3] Archery - [3(DEX)+2=5] Evasion [3(INT)=3] LipReading [3(REF)+2=5] Autofire - [3(DEX)=3] MartialArts [3(INT)+2=5] Perception [3(REF)+2=5] Handgun - [3(DEX)+2=5] MeleeWeapon [3(INT)=3] Tracking [3(REF)=3] HeavyWeapons - [3(REF)=3] Initiative Control [3(REF)+2=5] ShoulderArms - Performance [3(REF)=3] DriveLandVehicle - [3(COOL)=3] Acting [3(REF)=3] PilotAirVehicle - [2(TECH)=2] PlayInstrument [3(REF)=3] PilotSeaVehicle - [3(REF)=3] Riding + [3(DEX)+2=5] Brawling [4(INT)=4] ConcealRevealObject [4(REF)=4] Archery + [3(DEX)+3=6] Evasion [4(INT)=4] LipReading [4(REF)+3=7] Autofire + [3(DEX)=3] MartialArts [4(INT)+3=7] Perception [4(REF)+3=7] Handgun + [3(DEX)+3=6] MeleeWeapon [4(INT)=4] Tracking [4(REF)=4] HeavyWeapons + [4(REF)=4] Initiative Control [4(REF)+3=7] ShoulderArms + Performance [4(REF)=4] DriveLandVehicle + [3(COOL)=3] Acting [4(REF)=4] PilotAirVehicle + [2(TECH)=2] PlayInstrument [4(REF)=4] PilotSeaVehicle + [4(REF)=4] Riding -Armor: Ranged weapons: - Head: Leathers [20eb (everyday), SP=4/4] Sternmeyer SMG-21 (Heavy SMG) [50eb (costly), poor, Damage=3d6, ROF=1, Mag=/40 ()] - Body: Leathers [20eb (everyday), SP=4/4] Melee weapons: - Battle axe (Medium Melee Weapon) [50eb (costly), standard, Damage=2d6, ROF=2] - Boxing [Damage=1d6, ROF=1] +Armor: Ranged weapons: + Head: Leathers [20eb (everyday), SP=4/4] [7] Chadran Arms "City Reaper" (Heavy SMG) [50eb (costly), poor, Damage=3d6, ROF=1, Mag=/40 ()] + Body: Leathers [20eb (everyday), SP=4/4] Melee weapons: + [6] Two-handed sword (Heavy Melee Weapon) [50eb (costly), poor, Damage=3d6, ROF=2] + [5] Brawling [Damage=1d6, ROF=2] Inventory: - Ammo Equipment / Drugs Junk - [1] Grenades (Armor-Piercing) [100eb (premium)] [1] Carryall [20eb (everyday)] [45] Eddies [1eb (cheap)] - [80] Bullets (Basic) [1eb (cheap)] [1] Prayer Beads [10eb (cheap)] - [1] Broken Eye Implant - [1] Damaged Clothes - [1] Storage Locker Key - [1] Fluorescent Lipstick - [1] Stapler - ``` + Ammo Equipment / Drugs Junk + [1] Grenades (Armor-Piercing) [100eb (premium)] [1] Flashlight [20eb (everyday)] [47] Eddies [1eb (cheap)] + [80] Bullets (Basic) [1eb (cheap)] [1] Prayer Beads [10eb (cheap)] + [1] Poker Chip + [1] Fake ID + [1] Zip Ties + [1] Child’s drawing +``` @@ -213,73 +208,70 @@ cp_red_npc_generator.exe --rank=captain --role=solo Possible output: ``` -Solo, Captain, seed=521984000 -Has items total worth of 1872 - -Conditions: - HP: 45/45 (Seriously Wounded: 23) - Can evade bullets: True (REF >= 8) - -Stats: - [7] INT - [8] REF - [7] DEX - [5] TECH - [6] COOL - [6] WILL - [5] LUCK - [6] MOVE - [8] BODY - [3] EMP +--rank=captain --role=solo --seed=60120320 --flat=None --log_level=INFO +Has items total worth of 1662 + +Stats: Conditions: + [7] INT HP: 40/40 (Seriously Wounded: 20) + [8] REF TraumaTeam status: NONE + [6] DEX Can evade bullets: True (REF >= 8) + [3] TECH No intangible obscurement penalties: False + [6] COOL Has flashes of light protection: False + [6] WILL Has ears protection: False + [7] LUCK Has breath protection: True (Anti-Smog Breathing Mask) + [5] MOVE + [6] BODY + [5] EMP Skills: Education Technique Social - [7(INT)=7] Accounting [5(TECH)=5] AirVehicleTech [6(COOL)=6] Bribery - [7(INT)=7] AnimalHandling [5(TECH)=5] BasicTech [3(EMP)+2=5] Conversation - [7(INT)=7] Bureaucracy [5(TECH)=5] Cybertech [3(EMP)+2=5] HumanPerception - [7(INT)=7] Business [5(TECH)=5] Demolitions [6(COOL)+6=12] Interrogation - [7(INT)=7] Composition [5(TECH)=5] ElectronicsSecurityTech [6(COOL)+2=8] Persuasion - [7(INT)=7] Criminology [5(TECH)+6=11] FirstAid [6(COOL)=6] PersonalGrooming - [7(INT)=7] Cryptography [5(TECH)=5] Forgery [6(COOL)=6] Streetwise - [7(INT)=7] Deduction [5(TECH)=5] LandVehicleTech [6(COOL)=6] Trading - [7(INT)+2=9] Education [5(TECH)=5] PaintDrawSculpt [6(COOL)=6] WardrobeStyle - [7(INT)=7] Gamble [5(TECH)=5] Paramedic Body - [7(INT)=7] LibrarySearch [5(TECH)=5] PhotographyFilm [7(DEX)+2=9] Athletics - [7(INT)+2=9] LocalExpertYourHome [5(TECH)=5] PickLock [7(DEX)=7] Contortionist - [7(INT)+6=13] Tactics [5(TECH)=5] PickPocket [7(DEX)=7] Dance - [7(INT)=7] WildernessSurvival [5(TECH)=5] SeaVehicleTech [6(WILL)=6] Endurance - [7(INT)+2=9] LanguageStreetslang [5(TECH)=5] Weaponstech [6(WILL)+6=12] ResistTortureDrugs - [7(INT)=7] Science Awareness [7(DEX)+2=9] Stealth + [7(INT)=7] Accounting [3(TECH)=3] AirVehicleTech [6(COOL)=6] Bribery + [7(INT)=7] AnimalHandling [3(TECH)=3] BasicTech [5(EMP)+2=7] Conversation + [7(INT)=7] Bureaucracy [3(TECH)=3] Cybertech [5(EMP)+2=7] HumanPerception + [7(INT)=7] Business [3(TECH)=3] Demolitions [6(COOL)+6=12] Interrogation + [7(INT)=7] Composition [3(TECH)=3] ElectronicsSecurityTech [6(COOL)+2=8] Persuasion + [7(INT)=7] Criminology [3(TECH)+6=9] FirstAid [6(COOL)=6] PersonalGrooming + [7(INT)=7] Cryptography [3(TECH)=3] Forgery [6(COOL)=6] Streetwise + [7(INT)=7] Deduction [3(TECH)=3] LandVehicleTech [6(COOL)=6] Trading + [7(INT)+2=9] Education [3(TECH)=3] PaintDrawSculpt [6(COOL)=6] WardrobeStyle + [7(INT)=7] Gamble [3(TECH)=3] Paramedic Body + [7(INT)=7] LibrarySearch [3(TECH)=3] PhotographyFilm [6(DEX)+2=8] Athletics + [7(INT)+2=9] LocalExpertYourHome [3(TECH)=3] PickLock [6(DEX)=6] Contortionist + [7(INT)+6=13] Tactics [3(TECH)=3] PickPocket [6(DEX)=6] Dance + [7(INT)=7] WildernessSurvival [3(TECH)=3] SeaVehicleTech [6(WILL)=6] Endurance + [7(INT)+2=9] LanguageStreetslang [3(TECH)=3] Weaponstech [6(WILL)+6=12] ResistTortureDrugs + [7(INT)=7] Science Awareness [6(DEX)+2=8] Stealth Fighting [6(WILL)+2=8] Concentration Ranged_Weapon - [7(DEX)+2=9] Brawling [7(INT)=7] ConcealRevealObject [8(REF)=8] Archery - [7(DEX)+6=13] Evasion [7(INT)=7] LipReading [8(REF)+6=14] Autofire - [7(DEX)=7] MartialArts [7(INT)+6=13] Perception [8(REF)+6=14] Handgun - [7(DEX)+6=13] MeleeWeapon [7(INT)=7] Tracking [8(REF)=8] HeavyWeapons + [6(DEX)+2=8] Brawling [7(INT)=7] ConcealRevealObject [8(REF)=8] Archery + [6(DEX)+6=12] Evasion [7(INT)=7] LipReading [8(REF)+6=14] Autofire + [6(DEX)=6] MartialArts [7(INT)+6=13] Perception [8(REF)+6=14] Handgun + [6(DEX)+6=12] MeleeWeapon [7(INT)=7] Tracking [8(REF)=8] HeavyWeapons [8(REF)=8] Initiative Control [8(REF)+6=14] ShoulderArms Performance [8(REF)=8] DriveLandVehicle [6(COOL)=6] Acting [8(REF)=8] PilotAirVehicle - [5(TECH)=5] PlayInstrument [8(REF)=8] PilotSeaVehicle + [3(TECH)=3] PlayInstrument [8(REF)=8] PilotSeaVehicle [8(REF)=8] Riding Cyberware: - Borgware - Cyclops International Bug Eye [500eb] [1/5] - Targeting Scope [500eb] + Auditory System [1/1] Shoulders [1/2] Fashionware [1/7] + Cyberaudio Suite [500eb] [1/3] Big Knucks [100eb] Biomonitor [100eb] + Radio Communicator [100eb] Internal Cyberware [1/7] + Bodyweight AutoInjector [100eb] -Armor: Ranged weapons: - Head: Light Armorjack [100eb (premium), SP=11/11] Sternmeyer SMG-21 (Heavy SMG) [100eb (premium), standard, Damage=3d6, ROF=1, Mag=/40 ()] - Body: Light Armorjack [100eb (premium), SP=11/11] Melee weapons: - War hammer (Heavy Melee Weapon) [100eb (premium), standard, Damage=3d6, ROF=2] - Boxing [Damage=3d6, ROF=1] +Armor: Ranged weapons: + Head: Light Armorjack [100eb (premium), SP=11/11] [14] Chadran Arms "City Reaper" (Heavy SMG) [100eb (premium), standard, Damage=3d6, ROF=1, Mag=/40 ()] + Body: Light Armorjack [100eb (premium), SP=11/11] Melee weapons: + [8] Brawling [Damage=2d6, ROF=2] + [12] Big Knucks [100eb (premium), Damage=2d6, ROF=2] Inventory: - Ammo Equipment / Drugs Junk - [1] Grenades (Armor-Piercing) [100eb (premium)] [1] Radio Communicator [100eb (premium)] [503] Eddies [1eb (cheap)] - [80] Bullets (Basic) [1eb (cheap)] [1] Airhypo [50eb (costly)] [1] Expensive Necklace [100eb (premium)] - [1] Black Lace [50eb (costly)] [1] Autographed Photograph of Night City Celebrity [20eb (everyday)] - [2] Synthcoke [20eb (everyday)] [1] Glow Stick [10eb (cheap)] - [1] Carryall [20eb (everyday)] - ``` + Ammo Equipment / Drugs Junk + [1] Grenades (Armor-Piercing) [100eb (premium)] [1] Berserker [100eb (premium)] [422] Eddies [1eb (cheap)] + [80] Bullets (Basic) [1eb (cheap)] [1] Handcuffs [50eb (costly)] [1] Cheap Cigar [20eb (everyday)] + [1] Grenades (Teargas) [50eb (costly)] [1] Anti-Smog Breathing Mask [20eb (everyday)] [1] Pack of Cigarettes [20eb (everyday)] + [1] Chopsticks + [1] Class Schedule for Night City University +``` @@ -294,49 +286,44 @@ cp_red_npc_generator.exe --rank=general --role=solo Possible output: ``` -Solo, General, seed=924241408 -Has items total worth of 40532 - -Conditions: - HP: 50/50 (Seriously Wounded: No, Pain Editor) - TraumaTeam status: EXECUTIVE - Can evade bullets: False - -Stats: - [7] INT - [8-4(Head: Metalgear)=4] REF - [8-4(Head: Metalgear)=4] DEX - [5] TECH - [8] COOL - [8] WILL - [8] LUCK - [7-4(Head: Metalgear)=3] MOVE - [8+2(Grafted Muscle and Bone Lace)+4(Implanted Linear Frame ß (Beta))=14] BODY - [0] EMP +--rank=general --role=solo --seed=366729216 --flat=None --log_level=INFO +Has items total worth of 33282 + +Stats: Conditions: + [6] INT HP: 65/65 (Seriously Wounded: No, Pain Editor) + [8-4(Body: Metalgear)=4] REF TraumaTeam status: EXECUTIVE + [8-4(Body: Metalgear)=4] DEX Can evade bullets: False + [5] TECH No intangible obscurement penalties: False + [8] COOL Has flashes of light protection: True (Kiroshi OptiShield) + [8] WILL Has ears protection: True (Level Damper) + [8] LUCK Has breath protection: True (Mini Air Supply Cyberfinger) + [8-4(Body: Metalgear)=4] MOVE + [8+2(Grafted Muscle and Bone Lace)+4(Implanted Linear Frame ß (Beta))=14] BODY + [0] EMP Skills: Education Technique Social - [7(INT)=7] Accounting [5(TECH)=5] AirVehicleTech [8(COOL)=8] Bribery - [7(INT)=7] AnimalHandling [5(TECH)=5] BasicTech [0(EMP)+3=3] Conversation - [7(INT)=7] Bureaucracy [5(TECH)=5] Cybertech [0(EMP)+3=3] HumanPerception - [7(INT)=7] Business [5(TECH)=5] Demolitions [8(COOL)+8=16] Interrogation - [7(INT)=7] Composition [5(TECH)=5] ElectronicsSecurityTech [8(COOL)+3=11] Persuasion - [7(INT)=7] Criminology [5(TECH)+8=13] FirstAid [8(COOL)=8] PersonalGrooming - [7(INT)=7] Cryptography [5(TECH)=5] Forgery [8(COOL)=8] Streetwise - [7(INT)=7] Deduction [5(TECH)=5] LandVehicleTech [8(COOL)=8] Trading - [7(INT)+3=10] Education [5(TECH)=5] PaintDrawSculpt [8(COOL)=8] WardrobeStyle - [7(INT)=7] Gamble [5(TECH)=5] Paramedic Body - [7(INT)=7] LibrarySearch [5(TECH)=5] PhotographyFilm [4(DEX)+3=7] Athletics - [7(INT)+3=10] LocalExpertYourHome [5(TECH)=5] PickLock [4(DEX)=4] Contortionist - [7(INT)+8=15] Tactics [5(TECH)=5] PickPocket [4(DEX)=4] Dance - [7(INT)=7] WildernessSurvival [5(TECH)=5] SeaVehicleTech [8(WILL)=8] Endurance - [7(INT)+3=10] LanguageStreetslang [5(TECH)=5] Weaponstech [8(WILL)+8=16] ResistTortureDrugs - [7(INT)=7] Science Awareness [4(DEX)+3=7] Stealth + [6(INT)=6] Accounting [5(TECH)=5] AirVehicleTech [8(COOL)=8] Bribery + [6(INT)=6] AnimalHandling [5(TECH)=5] BasicTech [0(EMP)+3=3] Conversation + [6(INT)=6] Bureaucracy [5(TECH)=5] Cybertech [0(EMP)+3=3] HumanPerception + [6(INT)=6] Business [5(TECH)=5] Demolitions [8(COOL)+8=16] Interrogation + [6(INT)=6] Composition [5(TECH)=5] ElectronicsSecurityTech [8(COOL)+3=11] Persuasion + [6(INT)=6] Criminology [5(TECH)+8=13] FirstAid [8(COOL)=8] PersonalGrooming + [6(INT)=6] Cryptography [5(TECH)=5] Forgery [8(COOL)=8] Streetwise + [6(INT)=6] Deduction [5(TECH)=5] LandVehicleTech [8(COOL)=8] Trading + [6(INT)+3=9] Education [5(TECH)=5] PaintDrawSculpt [8(COOL)=8] WardrobeStyle + [6(INT)=6] Gamble [5(TECH)=5] Paramedic Body + [6(INT)=6] LibrarySearch [5(TECH)=5] PhotographyFilm [4(DEX)+3=7] Athletics + [6(INT)+3=9] LocalExpertYourHome [5(TECH)=5] PickLock [4(DEX)=4] Contortionist + [6(INT)+8=14] Tactics [5(TECH)=5] PickPocket [4(DEX)=4] Dance + [6(INT)=6] WildernessSurvival [5(TECH)=5] SeaVehicleTech [8(WILL)=8] Endurance + [6(INT)+3=9] LanguageStreetslang [5(TECH)=5] Weaponstech [8(WILL)+8=16] ResistTortureDrugs + [6(INT)=6] Science Awareness [4(DEX)+3=7] Stealth Fighting [8(WILL)+3=11] Concentration Ranged_Weapon - [4(DEX)+3=7] Brawling [7(INT)=7] ConcealRevealObject [4(REF)=4] Archery - [4(DEX)+8=12] Evasion [7(INT)=7] LipReading [4(REF)+8=12] Autofire - [4(DEX)=4] MartialArts [7(INT)+8=15] Perception [4(REF)+8=12] Handgun - [4(DEX)+8=12] MeleeWeapon [7(INT)=7] Tracking [4(REF)=4] HeavyWeapons + [4(DEX)+3=7] Brawling [6(INT)=6] ConcealRevealObject [4(REF)=4] Archery + [4(DEX)+8=12] Evasion [6(INT)=6] LipReading [4(REF)+8=12] Autofire + [4(DEX)=4] MartialArts [6(INT)+8=14] Perception [4(REF)+8=12] Handgun + [4(DEX)+8=12] MeleeWeapon [6(INT)=6] Tracking [4(REF)=4] HeavyWeapons [4(REF)+3(Sandevistan)=7] Initiative Control [4(REF)+8=12] ShoulderArms Performance [4(REF)=4] DriveLandVehicle [8(COOL)=8] Acting [4(REF)=4] PilotAirVehicle @@ -344,43 +331,39 @@ Skills: [4(REF)=4] Riding Cyberware: - Borgware Shoulders [2/2] Internal Cyberware [5/7] - Cyclops International Bug Eye [500eb] [3/5] Cyberarm [500eb] [4/4] Internal Body Cyberware Hardened Shielding [1000eb] - Low Light / Infrared / UV [500eb] Popup Ranged Weapon (SMG) [500eb] Independent Air Supply [1000eb] - Targeting Scope [500eb] Flashbulb [500eb] Grafted Muscle and Bone Lace [1000eb] - Implanted Linear Frame ß (Beta) [5000eb] Cyberarm [500eb] [4/4] Grafted Muscle and Bone Lace [1000eb] - Artificial Shoulder Mount [1000eb] [2/2] Popup Grenade Launcher [500eb] Appetite Controller [500eb] - Cyberarm [500eb] [3/4] Dynalar Modular Finger Enthusiast Cyberhand [500eb] [1/8] Neuralware [1/1] - Popup Net Launcher [500eb] Airhypo Cyberfinger [100eb] Neural Link [500eb] [2/5] - Cyberarm [500eb] [4/4] Auditory System [1/1] Sandevistan [500eb] - ChainRipp [500eb] Cyberaudio Suite [500eb] [1/3] Chipware Socket [500eb] [1/1] - Artificial Shoulder Mount [1000eb] [1/2] Sensor Array [1000eb] [0/5] Pain Editor [1000eb] - Cyberarm [500eb] [3/4] Radio Communicator [100eb] Eye Sockets [1/2] - Popup Shield [500eb] Fashionware [2/7] Cybereye [100eb] [2/3] - External Cyberware [1/7] Biomonitor [100eb] Low Light / Infrared / UV [500eb] - Kiroshi OptiShield [500eb] Kill Display [100eb] + Borgware Shoulders [2/2] Neuralware [1/1] + Implanted Linear Frame ß (Beta) [5000eb] Cyberarm [500eb] [3/4] Neural Link [500eb] [2/5] + Cyclops International Bug Eye [500eb] [1/5] Popup Shotgun [1000eb] Chipware Socket [500eb] [1/1] + Targeting Scope [500eb] Cyberarm [500eb] [4/4] Pain Editor [1000eb] + Artificial Shoulder Mount [1000eb] [2/2] Popup Grenade Launcher [500eb] Sandevistan [500eb] + Cyberarm [500eb] [4/4] Dynalar Modular Finger Enthusiast Cyberhand [500eb] [2/8] Internal Cyberware [3/7] + ChainRipp [500eb] Airhypo Cyberfinger [100eb] Grafted Muscle and Bone Lace [1000eb] + Cyberarm [500eb] [3/4] Mini Air Supply Cyberfinger [500eb] Grafted Muscle and Bone Lace [1000eb] + Flashbulb [500eb] Fashionware [2/7] Enhanced Antibodies [500eb] + PersonalPak KibbleWarmer [100eb] Biomonitor [100eb] Auditory System [1/1] + External Cyberware [1/7] Kill Display [100eb] Cyberaudio Suite [500eb] [1/3] + Kiroshi OptiShield [500eb] Level Damper [100eb] -Armor: Ranged weapons: - Head: Metalgear [5000eb (luxury), SP=18/18] Popup Grenade Launcher [500eb (expensive), Damage=6d6, ROF=1, Mag=/2 ()] - Body: Metalgear [5000eb (luxury), SP=18/18] GunMart "Snipe-Star" (Sniper Rifle) [1000eb (very_expensive), excellent, Damage=5d6, ROF=1, Mag=/4 ()] - Popup Shield [500eb (expensive), SP=10/10] Popup Ranged Weapon (SMG) [500eb (expensive), Damage=2d6, ROF=1, Mag=/30 ()] - Popup Net Launcher [500eb (expensive), Damage=0d0, ROF=1, Mag=/1 ()] - Melee weapons: - Spiked Bat (Heavy Melee Weapon) [500eb (expensive), excellent, Damage=3d6, ROF=2] - ChainRipp [500eb (expensive), excellent, Damage=4d6, ROF=1] - Boxing [Damage=4d6, ROF=1] +Armor: Ranged weapons: + Head: Metalgear [5000eb (luxury), SP=18/18] [8] Popup Grenade Launcher [500eb (expensive), Damage=6d6, ROF=1, Mag=/2 ()] + Body: Metalgear [5000eb (luxury), SP=18/18] [17] GunMart "Snipe-Star" (Sniper Rifle) [1000eb (very_expensive), excellent, Damage=5d6, ROF=1, Mag=/4 ()] + Bulletproof Shield [100eb (premium), SP=10/10] [16] Popup Shotgun [1000eb (very_expensive), Damage=4d6, ROF=1, Mag=/2 ()] + Melee weapons: + [11] Brawling [Damage=4d6, ROF=2] + [17] ChainRipp [500eb (expensive), excellent, Damage=4d6, ROF=1] Inventory: - Ammo Equipment / Drugs Junk - [30] Bullets (Armor-Piercing) [10eb (cheap)] [1] Auto Level Dampening Ear Protectors [1000eb (very_expensive)] [2840] Eddies [1eb (cheap)] - [2] Grenades (Smoke) [50eb (costly)] [1] Radar Detector [500eb (expensive)] [1] Gold Ring with Engraved Initials [100eb (premium)] - [2] Net (Net) [50eb (costly)] [2] Berserker [100eb (premium)] [1] Good Beer [20eb (everyday)] - [30] Bullets (Basic) [1eb (cheap)] [2] Timewarp [100eb (premium)] [1] Kibble Pack [10eb (cheap)] - [2] Black Lace [50eb (costly)] [1] A pair of six-sided dice - [2] Synthcoke [20eb (everyday)] - [1] Flashlight [20eb (everyday)] - - ``` + Ammo Equipment / Drugs Junk + [2] Grenades (Armor-Piercing) [100eb (premium)] [1] Radar Detector [500eb (expensive)] [2619] Eddies [1eb (cheap)] + [12] Bullets (Expansive) [10eb (cheap)] [2] Berserker [100eb (premium)] [1] Child’s drawing + [8] Bullets (Armor-Piercing) [10eb (cheap)] [2] Timewarp [100eb (premium)] + [2] Shotgun Shells (Incendiary) [10eb (cheap)] [1] Radio Communicator [100eb (premium)] + [2] Slugs (Armor-Piercing) [10eb (cheap)] [1] Bulletproof Shield [100eb (premium), SP=10/10] + [18] Slugs (Basic) [1eb (cheap)] [2] Black Lace [50eb (costly)] + [1] Handcuffs [50eb (costly)] + [2] Synthcoke [20eb (everyday)] + [1] Carryall [20eb (everyday)] +``` diff --git a/cp_red_npc_generator/configs/items/weapon.json b/cp_red_npc_generator/configs/items/weapon.json index be01e6d..63cd110 100644 --- a/cp_red_npc_generator/configs/items/weapon.json +++ b/cp_red_npc_generator/configs/items/weapon.json @@ -64,7 +64,7 @@ "Two-handed war hammer" ], "type": "weapon", - "price": 50, + "price": 100, "unique_tags": [ "VeryHeavyMeleeWeapon", "MeleeWeapon" diff --git a/cp_red_npc_generator/src/main.py b/cp_red_npc_generator/src/main.py index b4bc0d6..9e5cc93 100644 --- a/cp_red_npc_generator/src/main.py +++ b/cp_red_npc_generator/src/main.py @@ -9,7 +9,7 @@ import numpy as np from generate_trauma_team_status import generate_trauma_team_status -from utils import is_debugger_active +from utils import is_debugger_active, args_to_str from generate_ammo import generate_ammo from generate_armor import generate_armor from generate_cyberware import generate_cyberware @@ -53,10 +53,20 @@ def main(args) -> int: rank: Rank = dataclass_wizard.fromdict(Rank, next(r for r in ranks if r["name"] == args.rank)) role: Role = dataclass_wizard.fromdict(Role, next(r for r in roles if r["name"] == args.role)) + + # generation process, there are a lot of log lines with DEBUG level npc: Npc = create_npc(NpcTemplate(rank, role)) npc_str: str = npc.to_string(args.flat) - logging.info(f"\n{str(args.role).title()}, {str(args.rank).title()}, {seed=}") + # usually you have multiple npcs in one file and it's convenient to split them visually + logging.info(f"<=================================================================================================>") + + # print the args you can use to receive exactly the same result + args_dict = dict(vars(args)) + args_dict["seed"] = seed + logging.info(f"\n{args_to_str(args_dict)}") + + # the long string with npc info logging.info(npc_str) return 0 diff --git a/cp_red_npc_generator/src/utils.py b/cp_red_npc_generator/src/utils.py index 9e411bc..e4ce0b5 100644 --- a/cp_red_npc_generator/src/utils.py +++ b/cp_red_npc_generator/src/utils.py @@ -72,3 +72,13 @@ def get_allowed_items(items: List[str], normalized_index: float) -> List[str]: sequence_len: int = len(items) index: int = math.floor((sequence_len - 1) * normalized_index) return items[index:sequence_len] + + +def args_to_str(args) -> str: + result = "" + for key, value in args.items(): + if type(value) is not bool: + result += f"--{key}={value} " + elif value: + result += f"--{key} " + return result