|
|
|||||||
| Old Skool Monsta Toolz OSMT and the OSM Adventure gametype. Monsters and Puzzles and Traps! Oh, my! |
![]() |
|
|
Thread Tools | Rate Thread | Display Modes |
|
|
#1 |
|
Registered Monkey
|
I'm starting this thread mainly as a development tool for myself. I need to wrangle all the info that goes into the Manual regarding the monsters, their individual abilities and behaviors, etc.
Also, I figure many of you are just about at the point where you need to know as much as possible about the monster you're placing in your map. Or maybe you're devising the monster placement and want to know what monster is best for this situation. Or you just want to know what's possible with these monsters. I'll be devoting one post per creature species and I'll update that post when more info become available or is changed.
__________________
- SuperApe ![]() -= Unreal Geek =-= Flash Padawan =-= Animation Refugee =-
|
|
|
|
|
|
#2 |
|
Registered Monkey
|
SmartNalicow
Name: Nalicow (in UT: Cow)
Wiki page: Cow Intelligence: Reptile Health: 60 Attacks: None Damage: None OSM Score Award: 1 Description & Behavior: The Nalicow is a herd animal that was raised by the Nali, the oppressed race that players saved in the original Unreal game. Nalicows are harmless. They walk around, moo, shake, and sometimes poop a green blob that eventually "pops" in green smoke. Sometimes Nalicows are accompanied by BabyCows, which will usually stay close. If hurt, the Nalicow tends to turn away from the attacker and run. Properties: bHasBaby : If True, a baby cow will be spawned near this cow. It will stay close to this cow.
__________________
- SuperApe ![]() -= Unreal Geek =-= Flash Padawan =-= Animation Refugee =-
Last edited by SuperApe; 02-14-2009 at 07:26 AM. |
|
|
|
|
|
#3 |
|
Registered Monkey
|
SmartFly
Name: Fly (in UT: RazorFly)
Wiki page: None Intelligence: None Health: 35 Attacks: Sting, both from above and from below. Damage: Sting = 10, by default OSM Score Award: 2 Description & Behavior: The Fly is a large flying insect with little (no) intelligence. It will buzz as it flies. It crawls and flies until an Enemy is found. It will generally home in on the Enemy by flying because it flies much faster than it crawls, but when close it will usually land and attack from the ground, as it's ground attack can be made more frequently. If hit, the Fly will usually try to dodge by flying. Although a single Fly can be easy to defeat, swarms of Flies can be very challenging. When found in a swarm, Flies are sometimes known to alert the rest of the hive, if angered, causing the entire hive to attack at once. Properties: bAngryHive : If True, other Flies with the same Tag are considered of the same hive and if this Fly is damaged by an Enemy, it will immediately break off and attempt to alert all other Flies in it's hive. It will make all efforts to reach any "hivemate" Fly without an Enemy and tell them about their Enemy. Those hivemates will immediately attack the Enemy. The result can be like a swarming effect.Orders: Prone : This special Order simply allows mappers to place a Fly and not worry that it will wander around or fly. Instead the placed fly will remain "grounded" until an Enemy is detected or it is alerted by another fly.
__________________
- SuperApe ![]() -= Unreal Geek =-= Flash Padawan =-= Animation Refugee =-
Last edited by SuperApe; 02-14-2009 at 07:26 AM. |
|
|
|
|
|
#4 |
|
Registered Monkey
|
SmartPupae
Name: Pupae (in UT: SkaarjPupae)
Wiki page: None Intelligence: Reptile Health: 65 Attacks: Bite, Stab and Lunge. Damage: Bite & Stab = 8, Lunge = 12, by default OSM Score Award: 4 Description & Behavior: Pupae are "baby Skaarj", an early form of the SkaarjWarriors and all other Skaarj. Although these are young creatures, they are fairly intelligent and far from harmless. They "skitter" around on four spider-like legs and can lunge about as far as a player can dodge or double-jump. They are sometimes found feeding on the carcasses they've killed. Orders: Feeding : This special Order will cause the Pupae to remain in their placed location and feed on a carcass. It will play a series of biting and tearing animations as it munches down on the carcass directly in front of it. The mapper should supply a carcass or gib decoration for this purpose and place it directly in front of the placed Pupae.
__________________
- SuperApe ![]() -= Unreal Geek =-= Flash Padawan =-= Animation Refugee =-
Last edited by SuperApe; 02-14-2009 at 07:26 AM. |
|
|
|
|
|
#5 |
|
Registered Monkey
|
SmartManta
Name: Manta
Wiki page: None Intelligence: Reptile Health: 78 Attacks: Whip and Sting, using it's tail. Damage: Both Whip & Sting = 15 by default. OSM Score Award: 6 Description & Behavior: Mantas are simple flying reptilian creatures. They mostly glide and fly, but are known to land and rest, while flipping their tails. When an Enemy is detected they are known to dive and attack with agility. Mantas are better in open spaces and are usually less effective at attacking in tunnels or cramped spaces. Properties: StingDamage : The amount of damage the Manta will do if it stings it's Enemy with it's tail. Default = 15.SubClass: CaveManta Health: 50 OSM Score Award: 6 Description: This weaker subclass is nearly all-white in color, as opposed to the normal green, due to the lack of sunlight they recieve. They are meant to be found exclusively underground or in dark places. They are otherwise identical to the normal Manta. SubClass: GiantManta Health: 400 Damage: Both Whip & Sting = 30 by default. Armor: Their tough skin can absorb 35 damage without causing the GiantManta to react in pain. OSM Score Award: 12 Description: This subclass is nearly three times the size of a normal Manta. These creatures are meant to be found exclusively in open areas.
__________________
- SuperApe ![]() -= Unreal Geek =-= Flash Padawan =-= Animation Refugee =-
Last edited by SuperApe; 02-14-2009 at 07:25 AM. |
|
|
|
|
|
#6 |
|
Registered Monkey
|
SmartGasbag
Name: Gasbag
Wiki page: None Intelligence: Reptile Health: 200 Attacks: Punch, Pound and Fireball projectile. Damage: Punch = 25 & Pound = 35, by default. Fireball = 45 with a DamageRadius of 140 UU. OSM Score Award: 8 Description & Behavior: Gasbags are floating, legless creatures with multiple eyes and large mouths. They are unlike any other species in appearance. They are meant to be found in or around fire or lava, as one of their main attacks is spitting out a large, slow-moving fireball which explodes on impact. These are very tough creatures with a painful "One-Two" Punch and even more devastating Pound attack with their powerful arms. Although they can fly, their movements are fairly slow. Properties: PoundDamage : The amount of damage done when the Gasbag Pounds it's Enemy with both fists. Default = 35.Subclass: GiantGasbag Health: 600 Attacks: Punch, Pound, Fireball and spitting out smaller Gasbags. Damage: Punch = 50 & Pound = 70, by default. Fireball = 90 with a DamageRadius of 280 UU. Armor: GiantGasbags have a very tough skin able to absorb 50 damage without reacting in pain. OSM Score Award: 25 Description: This subclass is a "mother" of other Gasbags. It is three times the size and very powerful. On top of that, this creature can spit out either fireball projectiles or normal-sized Gasbags from it's mouth. These "child" Gasbags will attack the mother's Enemy as well. If there is no Enemy around, the mother may decide to retrieve child Gasbags by tracking them down and swallowing them whole. Child Gasbags resist this a little and back away from the mother. This subclass is considered a Boss, so other creatures will usually decide not to attack it.
__________________
- SuperApe ![]() -= Unreal Geek =-= Flash Padawan =-= Animation Refugee =-
Last edited by SuperApe; 02-14-2009 at 07:25 AM. |
|
|
|
|
|
#7 |
|
Registered Monkey
|
SmartBrute
Name: Brute
Wiki page: Brute Intelligence: Mammal Health: 340 Attacks: PistolWhip & Punch melee attacks. Gutshot projectile, Double fire projectile and Walk fire projectile attacks. Projectile is a rocket. Damage: Melee attacks = 35, by default. Each rocket projectile = 55 with DamageRadius of 180 UU. OSM Score Award: 10 Description & Behavior: Brutes are genetically engineered bipedal humaniods designed to serve the Skaarj as sentries, and sometimes as beasts of burden. They are big and generally slow creatures with less than average intelligence. They carry two projectile weapons, one in each hand. In close range, they either PistolWhip, Punch or fire their projectiles at point-blank in a Gutshot. At long range, they either stand and fire both projectiles at a rapid rate, walk closer and fire, or stamp their feet and charge the Enemy. Brutes are known to sleep while at their post. They are less aware when they are asleep. Properties: bTurret : If True, this Brute will remain in it's placed location and only turn to attack Enemies.Orders: Sleeping : This will put the Brute in a Sleeping state at map start. The Brute is much less aware while sleeping. They sleep while standing up.Subclass: LesserBrute Health: 180 Attacks: LesserBrutes carry dual blaster pistols, firing EliteKrall bolts. Damage: Melee attacks = 28, by default. Projectiles = 25. OSM Score Award: 8 Description: This subclass is a smaller version of the normal Brute, although still considerably bigger than a normal player. They carry blaster pistols instead of rocket launchers. The blaster projectiles move faster than normal Brute rockets. They appear to be wearing two ammo belts across their massive chest. Subclass: Behemoth Health: 500 Attacks: Behemoths carry dual SeekingRocket launchers. Damage: Melee attacks = 48, by default. Projectiles = 65 with a DamageRadius of 190 UU. Armor: Behemoths wear armor able to absorb 30 damage before reacting in pain. OSM Score Award: 20 Description: Behemoths are nearly the largest of all the creatures. They carry twin guns that fire SeekingRockets, which home in and do a lot of damage. They also have armor, which protects them from reacting in pain to minor damage.
__________________
- SuperApe ![]() -= Unreal Geek =-= Flash Padawan =-= Animation Refugee =-
Last edited by SuperApe; 02-14-2009 at 07:25 AM. |
|
|
|
|
|
#8 |
|
Registered Monkey
|
SmartKrall
Name: Krall
Wiki page: Krall Intelligence: Mammal Health: 180 Attacks: Krall staff, used in melee attacks (Strike, Pound & Throw), as well as projectile launcher, firing an energy bolt. Damage: Strike = 20, Pound = 20 & Throw = 30, by default. Projectile = 17. OSM Score Award: 8 Description & Behavior: Krall are fairly intelligent reptilian creatures long ago enslaved to serve the Skaarj. They have since become integrated into the Skaarj society as lower class soldiers. They are very loyal and are generally given more important duties than Brutes, like Patroling and Guarding. Krall are very agile; able to run quickly and jump very far. Krall carry a bladed staff which fires an enegy bolt, so it can be used in close range as well as long. They have various striking melee attacks, both one handed and two handed. One two-handed attack is called a Pound, as the staff is brought down from over the Krall's head. Another two-handed attack is called a Throw, as the target is stabbed with the staff and then lifted and tossed backwards at the same time. Krall can also fire their projectile rapidly while standing in place, or at a slower rate as they walk towards their Enemy. Krall have nimble legs, but those legs are vulnerable to damage. Krall are able to loose their legs completely during combat and still put up a good fight by crawling and firing with their staff weapon. Krall are sometimes found sleeping (sometimes even while standing against a wall), but they are still fairly aware while asleep. Krall can be mischievious at times as well. They like to play dice games while on duty and are often found in groups of 2 to 8 sitting in a circle playing. They are slightly less aware than normal while they concentrate on their games. Properties: bDicePlayer : If True, this Krall will gather with other Krall that have matching TeamTag (& bDicePlayer = true) to play a dice game: taking turns, rolling dice and laughing. The Krall will gather at the location of any one of the Krall that is set to play and form a circle. A number of Krall to play must be between 2 and 8, extra Krall will simply ignore the game. Krall are slightly less aware while playing.Orders: Sleeping : This will put the Krall in a Sleeping state at map start. The Krall is less aware while sleeping. For this Order to take effect, a valid Krall sleeping animation must also be specified in the StartingAnim property. (Sleep1, Sleep2, Sleep3)Subclass: EliteKrall Health: 200 Damage: Projectile = 25. OSM Score Award: 10 Description: This subclass is are the leaders of the Krall. They are a little tougher, more agile and able to jump farther than normal Krall. Their staff weapon also fires a faster and more powerful energy bolt. They are otherwise identical to normal Krall.
__________________
- SuperApe ![]() -= Unreal Geek =-= Flash Padawan =-= Animation Refugee =-
Last edited by SuperApe; 02-14-2009 at 07:24 AM. |
|
|
|
|
|
#9 |
|
Registered Monkey
|
SmartSkaarj
Name: Skaarj (in UT: SkaarjWarrior)
Wiki page: Skaarj Intelligence: Human Health: 210 Attacks: Claw, Spin & Lunge blade melee attacks. Dual enegy projectiles. Damage: Claw = 14, Spin = 16 and Lunge = 30, by default. Projectile = 30 with a DamageRadius of 150. OSM Score Award: 12 Description & Behavior: Skaarj are highly intelligent and aggressive creatures that appear as a cross between a bipedal reptile and insect. They are strong and agile, able to run, dodge, and jump just like players do. They carry two large blades on each forearm that can retract. These blades can be used in a "One-Two" punch-style Claw melee attack or in a slashing Spin attack. Skaarj can also quickly Lunge at a target with both blades outstretched. On top of this, Skaarj have a natural bio-electrical charge they can build up and discharge as a projectile from each arm. These projectiles move quickly, do a fair amount of damage and cause the target to be thrown backwards. They can fire two projectiles at a time while standing still or at a slower rate while walking or jogging toward their Enemy. Skaarj are complex creatures, not only managing a variety of lesser creatures to do their bidding, but also comprising several classes within their species that handle various tasks. Skaarj are sometimes seen operating complex machinery or control panels. Skaarj are known to lie in wait, feigning death to catch a passing Enemy by suprise. Properties: bButtonPusher : If True, this Skaarj will be busy performing a series of button pushes and lever pulls at map start as it monitors and operates a control panel. Mappers should supply a control panel and place it directly in front of the Skaarj. The Skaarj will be slightly less aware while button pushing.Subclass: IceSkaarj Armor: IceSkaarj have light armor that absorbs 10 damage without reacting in pain. OSM Score Award: 12 Description: This subclass is meant for use in cold weather climates. They appear blue, as opposed to the normal green, and they wear some light armor. They are otherwise identical to normal Skaarj. Subclass: SkaarjScout Health: 180 Armor: SkaarjScouts have light armor that absorbs 10 damage without reacting in pain. OSM Score Award: 12 Description: SkaarjScouts are meant to be used as lone reconnaissance soldiers. They are slightly less tough, but wear some light armor. They are otherwise identical to normal Skaarj. Subclass: SkaarjBerserker Health: 320 Damage: Claw = 20, Spin = 40 & Lunge = 40, by default. Armor: SkaarjBerserkers have a very tough skin and a wild detemination that allows them to absorb 25 damage without reacting in pain. OSM Score Award: 20 Description: A SkaarjBerserker is a giant among Skaarj. It stands 20% taller, nearly as tall as a Behemoth or Warlord. These creatures are wild and very aggressive, attacking nearly any other creature which challenges them, including each other, which is why they are normally found alone. They favor melee attacks and usually are much more skilled in combat than other Skaarj. Subclass: SkaarjAssassin Health: 220 Armor: SkaarjAssassins carry medium armor which allow them to absorb 15 damage without reacting to pain. OSM Score Award: 15 Description: SkaarjAssassins are sort of an infantry soldier, wearing medium armor and able to take more damage than the normal Skaarj. They are otherwise identical to normal Skaarj. Subclass: SkaarjLord Health: 320 Damage: Claw = 20, Spin = 35 & Lunge = 35, by default. Armor: SkaarjLords wear heavy armor which absorbs 25 damage without reacting in pain. OSM Score Award: 20 Description: SkaarjLords are the commanding class of Skaarj. They appear nearly identical to SkaarjAssassins, and can be confused easily as they are often seen alongside them. However, they can be identified by their deeper voices. SkaarjLords are very tough and usually far more skilled in combat than other Skaarj.
__________________
- SuperApe ![]() -= Unreal Geek =-= Flash Padawan =-= Animation Refugee =-
Last edited by SuperApe; 02-14-2009 at 07:24 AM. |
|
|
|
|
|
#10 |
|
Registered Monkey
|
SmartWarlord
Name: Warlord
Wiki page: Warlord Intelligence: Human Health: 1100 Attacks: Rocket launcher with homing rockets. Strike melee attack using its rocket launcher as a club. Damage: Strike = 45, by default. Rocket projectile = 70 with a DamageRadius of 200 UU. Armor: Warlords wear armor and have a tough skin, so they are able to absorb 50 damage without reacting to pain. OSM Score Award: 30 Description & Behavior: The Warlord is a Skaarj who has evolved through metamorphosis to the smartest, toughest and most dangerous creature. Warlords appear as giant Skaarj (like SkaarjBerserkers) with bat-like wings, very heavy armor and horns. Instead of using its blades or bio-electrical projectiles, the Walord has a special device fitted on its arm. It is a combonation rocket launcher and teleportation device. The rocket launcher fires homing rockets, able to lock onto the target and home in with moderate agility. The Warlord is able to use its rocket launcher as a club in close combat, but at distances, will fire two shots in quick succession. The Warlord can fire while walking toward its target or while flying. Warlords are moderately agile for their size, able to dodge projectile fire while walking or running. In the air, Warlords are extreamely agile, so they often prefer to be air born. For this reason, Warlords are typically found in more open spaces. If injured during combat, Warlords may use their teleportation device to retreat or to suprise their Enemy by appearing behind them. If hunting their Enemy, Warlords may use their teleportation device to "jump ahead", to close the gap on their Enemy, or to search around the area quickly. If seriously injured Warlords have been known to use the teleportation device to retreat from the battle altogether, laughing as they do so, to live and fight another day. If killed while flying, the Warlord will likely fall upside down to the ground and if the Enemy is still in sight, it will raise its rocket launcher to fire off one last "death shot" at them before dying. The Warlord is considered a Boss, so other creatures will avoid getting into combat with it. Properties: bTacticalTeleporting : If True, this Warlord will use its teleport device both to retreat from combat if injured and to track down an Enemy while hunting.Orders: Mutilating : This special Order will cause this Warlord to be busy at map start mutilating a long dead carcass, by kicking it, hitting it and periodically ripping pieces of it off to eat it. The Warlord is slightly distracted and less aware while mutilating. When an Enemy is detected, the Warlord will laugh at them and then attack. A large gib is automatically spawned in front of the Warlord, so there is no need for the mapper to supply this gib. The gib will automatically disappear a short time after the Warlord has left to attack an Enemy.
__________________
- SuperApe ![]() -= Unreal Geek =-= Flash Padawan =-= Animation Refugee =-
Last edited by SuperApe; 02-14-2009 at 07:23 AM. |
|
|
|
|
|
#11 |
|
Registered Monkey
|
ScriptedCharacter
Name: (Character Name)
Wiki page: None Intelligence: Human Health: 100 Attacks: Weapon use (see below) Damage: Weapon use (see below) OSM Score Award: 1 Description & Behavior: ScriptedCharacters are player character Monsters. They look, sound and fight similar to normal Players. They may appear as any Player character. Most of the time, they will be friendly to Players and fight by their side, but these characters sometimes are held hostage, ignore Players or turn against Players and command legions of Monsters. Although they cannot pickup items, ScriptedCharacters attack by using up the weapon pickups they have in their inventory, so their attacks and damage vary depending on the weapon used. Once a weapon is depleated of ammo, they will switch to another weapon until their inventory is empty. ScriptedCharacters are very talkative. They will Taunt, Challenge and Cheer. Properties: Main: If set, these properties will override the default settings on ScriptedCharacters. FighterAnim: The anim sequence used when this ScriptedCharacter challenges another Pawn.AI: (bQuiet): Use this normal ScriptedMonster property to make sure this ScriptedCharacter doesn't talk, taunt or cheer. It will still cry in pain and death.Sounds: bAllowCharacterOverride : If True, this creature will retain the default phrases for Greeting, Threaten, Fear, etc., based on the default Character sounds.Notes : A ScriptedCharacter can be placed in an OSM Adventure map with the Tag "IntroCutScenePawn" and it will be reset to appear as the Player's selected Character during the IntroCutScene. It will be removed from the level at the end of the cutscene.
__________________
- SuperApe ![]() -= Unreal Geek =-= Flash Padawan =-= Animation Refugee =-
Last edited by SuperApe; 02-14-2009 at 07:15 AM. |
|
|
|
|
|
#12 |
|
Registered Monkey
|
ScriptedMonster Basics
ScriptedMonster is the base class for all the creatures in the OSMT toolset. Along with a custom Controller class, ScriptedMonsterController, it handles all the advanced AI features that were handled by the ScriptedPawn class from UT. ScriptedMonster is meant to be the accessible class the mapper modifies to tweak the individual creature properties to suit the needs of their map.
Additionally, note that if you would like to add your own custom monster at some point, subclass ScriptedMonster and make use of the functions available in this class and the functions used in other ScriptedMonster subclasses for easy development and integration to this toolset. Properties: Along with the normal Pawn and xPawn attributes, ScriptedMonsters have several new properties to help configure the creature's behavior. Most of these properties are used the same way as they were in UT. AI: Aggressiveness : A ranking of how aggressive this creature is, generally between -1.0 and 1.0.Gib: GibScale : A DrawScale multiplier given to gibs spawned from this creature.Orders: AlarmTag : This creature is associated with AlarmPoints with this Tag. It will begin to perform their Alarm procedures when it first sees a player.ScriptedMonster: OddsOfAppearing : The chance this creature will show up at map start. Default = 1.0 (or 100%) This chance is adjusted by game Skill level.Sound: Acquire : The sound made when this creature acquires an Enemy.Orders Available: Waiting : (default) Wander or Camp nearby the placed spot until an Enemy is detected. Attack and freely roam afterwards.Useful Functions: - A monster who dies will automatically trigger its Event. This can be used in a variety of situations where the mapper will require things to happen once the monster is dead, or to wait for things to happen until the monster had died. To set this up, the mapper will match the monster's Event to the Tag of some other triggerable actor. The player who kills the monster is considered the Instigator of the Event. - A monster who is triggered in some way where the Instigator of the trigger Event is a Pawn (Player or otherwise), will immediately become aware of the Pawn and consider the Pawn their Enemy. To set this up, the mapper will match the monster's Tag to the Event of some trigger system (trigger, Mover, another monster, etc.) where the player will cause (or Instigate) the Event. Notes: For a step-by-step tutorial on implementing the various Orders available to all ScriptedMonsters, see the Basic ScriptedPawn Tutorial on the wiki.
__________________
- SuperApe ![]() -= Unreal Geek =-= Flash Padawan =-= Animation Refugee =-
Last edited by SuperApe; 02-14-2009 at 07:29 AM. |
|
|
|
|
|
#13 |
|
beep...beep....beep...
|
That rocks mate.
I'm all over Wangara again, and have spent most of the day mapping it out. I had to remove all monsters from the previous version and have finished putting all the new ones in the one i'm working on now. I'm still noobing with the states and orders so this will help greatly ![]()
__________________
|
|
|
|
|
|
#14 |
|
Registered Monkey
|
Woot!
![]() Now that I'm looking at what I have, I realize the things that need changing before release. I need to tweak ScoringValue on many of these creatures. I should probably find a better, more powerful projectile for the Behemoth (homing rockets?). And then there's the various properties not yet implemented, like Team stuff. EDIT: The OSM ScoringValues were taken mainly from the values given for Invasion, but this might be better. The values are essentially arbitrary, since there is no GoalScore for OSM, but it should reflect the relative difficultly of defeating the creature. OSM ScoringValues revisited: 1 Nalicow 2 Fly 4 Pupae 6 Manta 6 CaveManta 12 GiantManta 8 Gasbag 25 GiantGasbag 10 Brute 8 LesserBrute 20 Behemoth 8 Krall 10 EliteKrall 12 Skaarj 12 IceSkaarj 12 SkaarjScout 20 SkaarjBerserker 15 SkaarjAssassin 20 SkaarjLord 30 Warlord
__________________
- SuperApe ![]() -= Unreal Geek =-= Flash Padawan =-= Animation Refugee =-
Last edited by SuperApe; 05-31-2006 at 09:06 AM. |
|
|
|
|
|
#15 |
|
Registered Monkey
|
New Features are implemented with this latest version update (v.992b). ATTITUDE_Follow will allow more intelligent creatures act like a player ally, joining up and fighting allongside. Very cool. This feature wasn't available in UT99, but it was "advertised", so I wanted it.
![]() EDIT: Oops, I forgot to update the new OSM Score Values for these monsters. Done.
__________________
- SuperApe ![]() -= Unreal Geek =-= Flash Padawan =-= Animation Refugee =-
Last edited by SuperApe; 06-09-2006 at 07:07 PM. |
|
|
|
![]() |
| Bookmarks |
| Thread Tools | |
| Display Modes | Rate This Thread |
|
|