Rearranging TNMCharacters

Stare in awe at the fascinating machinations of the TNM team during the last two years of production, this was our private forum.

Moderator: TNM Team

Post Reply
User avatar
Jonas
Off Topic Productions
Off Topic Productions
Posts: 14224
Joined: Sat Apr 24, 2004 9:21 pm
Location: Hafnia

Rearranging TNMCharacters

Post by Jonas »

okay, here's the problem. A couple years ago, we made the bad choice of letting ME design the structure of TNMCharacters. Back then, I didn't have any clue how object-oriented programming works, so I thought "splitting it in civilians and military is the stupidest thing I've ever seen, it makes no sense! let's just put it all in the same category".

Yeah... so I was dumb. Now it's 2006, I know how the stuff works, and I'm sick and tired of our AI settings being so messed up and random. So now I'm going put some new superclasses in TNMCharacters and go over every one of our character classes to make them extend the right classes. Here's the plan (it's long):

TNMGenericCivilians

Defaults
bCower=True

bAlarmBot=False
bAlarmCarcass=True
bAlarmFire=True
bAlarmKilledPlayer=False
bAlarmLostPlayer=False
bAlarmSecurity=False

bFearAlarm=True
bFearCarcass=True
bFearDistress=True
bFearHacking=False
bFearIndirectInjury=True
bFearInjury=True
bFearProjectiles=True
bFearShot=True
bFearWeapon=False

bReactAlarm=True
bReactCarcass=True
bReactDistress=True
bReactFutz=True
bReactLoudNoise=True
bReactPresence=True
bReactProjectiles=True
bReactShot=True
bReactTheft=False

bHateCarcass=False
bHateDistress=False
bHateHacking=False
bHateIndirectInjury=False
bHateInjury=False
bHateShot=False
bHateWeapon=False

Pawns
BoardGuest1
BoardGuest2
GPBumFemale
GPBumMale1
GPBumMale2
GPBumMale3
GPBumMale4
GPBusinessman1
GPBusinessman2
GPBusinessman3
GPBusinesswoman1
GPBusinesswoman2
GPButler
GPChildMale1
GPChildMale2
GPDoctor
GPFemale1
GPFemale2
GPFemale3
GPFemale4
GPFemale5
GPHooker1
GPHooker2
GPJanitor
GPJunkieFemale
GPJunkieMale
GPLowerClassFemale
GPLowerClassMale1
GPLowerClassMale2
GPMaid
GPMale1
GPMale2
GPMale3
GPMale4
GPMechanic
GPNurse
GPScientistFemale
GPScientistMale
GPSecretary

TNMGenericAggressives

Defaults
bCower=False

bAlarmBot=True
bAlarmCarcass=True
bAlarmFire=True
bAlarmKilledPlayer=True
bAlarmLostPlayer=True
bAlarmSecurity=False

bFearAlarm=True
bFearCarcass=False
bFearDistress=False
bFearHacking=False
bFearIndirectInjury=False
bFearInjury=False
bFearProjectiles=True
bFearShot=False
bFearWeapon=False

bReactAlarm=True
bReactCarcass=True
bReactDistress=True
bReactFutz=True
bReactLoudNoise=True
bReactPresence=True
bReactProjectiles=True
bReactShot=True
bReactTheft=False

bHateCarcass=True
bHateDistress=True
bHateHacking=False
bHateIndirectInjury=True
bHateInjury=True
bHateShot=True
bHateWeapon=False

Pawns
ABICommando
ABIEliteGuard
ABIFemaleGuard
ABISecurityGuard
Alien
CSIGuard
CSIGuardLight
Firewall
FireWall2
Glow (DELETE!!)
Goat1
Goat2
Goat3
GoatFemale
GoatTemplar1
GoatTemplar2
GoatTemplar3
GPRentACop
Llama1
Llama2
Llama3
LlamaFemale
WCCommando
WCIDAgent
WCSecurity
WCThug

TNMCivilians

Defaults
bCower=True

bAlarmBot=False
bAlarmCarcass=True
bAlarmFire=True
bAlarmKilledPlayer=False
bAlarmLostPlayer=False
bAlarmSecurity=False

bFearAlarm=True
bFearCarcass=True
bFearDistress=True
bFearHacking=False
bFearIndirectInjury=True
bFearInjury=True
bFearProjectiles=True
bFearShot=True
bFearWeapon=False

bReactAlarm=True
bReactCarcass=True
bReactDistress=True
bReactFutz=True
bReactLoudNoise=True
bReactPresence=True
bReactProjectiles=True
bReactShot=True
bReactTheft=False

bHateCarcass=False
bHateDistress=False
bHateHacking=False
bHateIndirectInjury=False
bHateInjury=False
bHateShot=False
bHateWeapon=False

Pawns
Aemer
AJ (+ special carcass code!)
AlphaOperator
Andreus
Arny
Athanatos
Beeblequix
Breadfan
Chris
dp
Dummy
EvilInvasion
Glottis
Grub
Gwog (+ bLeaveAfterFleeing=True)
Hao
Jazz
jimmycracker
Jonas
Kevo
Krissy
KunioKun
Mercedes
OiNutter
ScaraKing
SteveTack
SymGeosis
Walton

TNMAggressives

Defaults
bCower=False

bAlarmBot=True
bAlarmCarcass=True
bAlarmFire=True
bAlarmKilledPlayer=True
bAlarmLostPlayer=True
bAlarmSecurity=False

bFearAlarm=True
bFearCarcass=False
bFearDistress=False
bFearHacking=False
bFearIndirectInjury=False
bFearInjury=False
bFearProjectiles=True
bFearShot=False
bFearWeapon=False

bReactAlarm=True
bReactCarcass=True
bReactDistress=True
bReactFutz=True
bReactLoudNoise=True
bReactPresence=True
bReactProjectiles=True
bReactShot=True
bReactTheft=False

bHateCarcass=True
bHateDistress=True
bHateHacking=False
bHateIndirectInjury=True
bHateInjury=True
bHateShot=True
bHateWeapon=False

Pawns
Abomnation
Athena
Beefman
Compudoc
DarkTemplar
Dazza
DD
Despot
Dreamcast
Endar
Fender2k1
Fury
Ghand
Ghandsummoned
Hobbes
Illuminati
Jackie
Jaysee
KingKashue
Kylie
LoVaquero
Madmax
ManInBlack
Master_Kale
Midashand
Mole
Nosferatu
Phasmatis
PimpJojo
RavingNutter
ricemanu
RyanHitman1
RyanHitman2
ryanHuman
SD
Slicer
ThatGuy
treskton (DELETE!!)
TRM
Vavrek
Winquman
Wolfy
Yardbomb
ZeroPresence

TNMAnimal

Defaults
bAlarmBot=False
bAlarmCarcass=False
bAlarmFire=False
bAlarmKilledPlayer=False
bAlarmLostPlayer=False
bAlarmSecurity=False

bFearAlarm=False
bFearCarcass=False
bFearDistress=False
bFearHacking=False
bFearIndirectInjury=False
bFearInjury=False
bFearProjectiles=True
bFearShot=False
bFearWeapon=False

bReactAlarm=False
bReactCarcass=False
bReactDistress=True
bReactFutz=True
bReactLoudNoise=True
bReactPresence=True
bReactProjectiles=True
bReactShot=True
bReactTheft=False

bHateCarcass=False
bHateDistress=True
bHateHacking=False
bHateIndirectInjury=True
bHateInjury=True
bHateShot=True
bHateWeapon=False

Pawns
NBDRat
RedGreasel
SnowWolf
Jonas Wæver
Chief Poking Manager of TNM

I've made some videogames:
Expeditions: Rome
Expeditions: Viking
Expeditions: Conquistador
Clandestine
that guy
The Nameless Mod
The Nameless Mod
Posts: 1312
Joined: Mon Apr 26, 2004 1:54 am
Location: Perth, Western Australia

Post by that guy »

I'm not going to read all that but might I suggest that you have your two generic classes extend their respective non-generic counterparts. Will make your like a whole lot easier.
User avatar
Trestkon
Off Topic Productions
Off Topic Productions
Posts: 2820
Joined: Sat Apr 24, 2004 9:03 pm
Location: Canada
Contact:

Post by Trestkon »

holycrap. We have a lot of NPCs :shock:
-Life does not snap to the x-axis
User avatar
Jonas
Off Topic Productions
Off Topic Productions
Posts: 14224
Joined: Sat Apr 24, 2004 9:21 pm
Location: Hafnia

Post by Jonas »

that guy wrote:might I suggest that you have your two generic classes extend their respective non-generic counterparts.
The reason for the division is that all generic characters will need to pass their multiskin properties on to their carcii. Rather than repeating the same bunch of code in all of those classes, we can just plop it in their superclass and be done with it. It may also make subsequent changes easier if we have a slightly more detailed categorization than DX.

But if you disagree with these explanations, nothing is set in stone. I posted this because I assume you're smarter than I am :)
Jonas Wæver
Chief Poking Manager of TNM

I've made some videogames:
Expeditions: Rome
Expeditions: Viking
Expeditions: Conquistador
Clandestine
that guy
The Nameless Mod
The Nameless Mod
Posts: 1312
Joined: Mon Apr 26, 2004 1:54 am
Location: Perth, Western Australia

Post by that guy »

I think we may be thinking different things Jonas. Concluding on MSN.
Post Reply