on the subject of walls, btw, the current wall system is weird. when u kill enemies near walls, the walls get progressively more bloody, going from white "Stone Wall", to dark red "Bloodied Wall", to bright red "Blood Stone", to bright green "Green Wall"...................... BUT, bloodstone can be preplaced (hell / special levels), and when it is, its usually DARK red, but even then some special levels have "Bloodstone" thats bright red, with dark red bloodstone right next to it! and..... preplaced bloodstone, when bloodied, turns green and is called a "bloodied wall".... waitaminute................
also, destructibility seems to be highly variable.... ive seen normal dark red "Bloodied Walls" next to bright red "Bloodstone", next to green wall, rocket hits, green ALWAYS gone... bloodied wall NEVER destroyed. ive fired BFG shots at "Bloodied Walls" and no effect, while the bloodstones get obliterated! but preplaced bloodstone is as destructible as normal walls! and when preplaced bloodstone turns green, it acts like "Bloodied Wall"... indestructible! of course NONE of it withstands a nuke, but thats a no-brainer. id REALLY like the wall system fixed, so the destructibility and color of a wall are unique to its name. preplaced or not.
also, im desinging a VERY special level at the moment, i had the thought of having Indestructible Levers. also of having levers that unlock doors and such. ( i mean unopenable doors, not closed ones)
hmmm... heres an enhanced parameter list for all terrain...
See[through]; Pass[through]; Shoot[through]; Damage[dealt]; [damage]Increment; [wall]Strength; [blood]Type; Blood[level]; Muffle[strength]; [blast]Absorb; Detonate[barrel]; Move[type]; [special]Effect; Symbol; Color; Name
lemme break these down;
See[through] : 0 = block, 1-10 = see through (higher = more restricted length and width of view), 11-20 = colorless sight (see above for range)
Pass[through] : 0 = block, 1+ = pass (higher = slower passage)
Shoot[through] : 0 = block, 1 = allow, 2 = aim blocking (projectiles pass, but blocks any line-of-fire... enemies won't shoot through it, and while aiming, the aiming cursor won't pass it, and it wont let you fire if the aiming line overlaps any terrain with this value)
Damage[dealt] : 0 = no damage, 1+ = deals damage, -1+ = heal damage
[damage]Increment : 0= no increment (deals same damage with each turn on the terrain), 1+ = cumulative increment (deals additional damage for every consecutive turn on terrain), -1+ = cumulative decrement (same as positive except deals that much *less* damage)
[wall]Strength :
0 = Static (stairs and border walls. unaffected by nuke, explosion, flood, or anything else.)
1 = Ground (nuke/explosion proof, only type replaced during floods, this is floor and fluids...)
2 = Indestructible (explosion immune, only damaged by nukes)
3 = Blast-Proof (rocket/explosive immune. only destroyed by Overcharged BFG shot.)
4 = Hard Immune (highly resistant but not immune to explosives and rockets, unaffected by AV Fire, resistant to normal BFG and Railgun.)
5 = Strong Immune (same as Hard, but only modestly resistant to rockets and explosives)
6 = Normal Immune (same resistances to BFG, Rail, and AV Fire, but no other resistances.)
7 = Weak Immune (same BFG, Rail, and AV Fire resistances, but is more susceptible to rockets and explosives than normal.)
8 = Hard Resist (same as Hard Immune, but is only resistant to AV Fire, not immune.)
9 = Strong Resist (See Strong Immune and Hard Resist)
10 = Normal Resist (see Normal Immune and Hard Resist)
11 = Weak Resist (see Weak Immune and Hard Resist)
12 = Hard Stone (same as Hard Immune, but no BFG, Rail, or AV Fire resistances.)
13 = Stone Wall (same as Strong Immune, see Hard Stone for difference)
14 = Strong Wall (same as Normal Immune, see Hard Stone for difference)
15 = Wall (Weak Immune, see Hard Stone)
16 = Strong Door (100% susceptible to any explosive blast. locked door or transporter)
17 = Door (same as Strong door, has slight bullet resistance, one of only 2 strengths that are less than 100% immune to bullets.)
18 = Destroy (100% susceptible to all damages. barrels)
[blood]Type :0 = cannot be bloodied, 1 = Floor (blood, Corpse, pool...), 2 = Stone (levels 1-15, white stone walls at start), 3 = Hell (upper levels, red bloodstone walls at start), 4 = Special (bloodied walls of special levels.), 5 = Evil (green walls of Phobos Arena and other select levels.)
Blood[level] : 0 = no blood, 1 = Drip (blood dot on floor), 2 = Bloodied (first level of blood for walls.), 3 = Pool (blood pool on floor), 4 = Soaked (Bloodstone Wall. the blood is soaked into the rock.), 5 = Massacre (green wall, WAY too much blood, currently highest wall. all wall colors only apply to Blood Type 2, Stone), 6-7 = currently unused (i think), 8 = Static (pre-placed, blood level cannot rise beyond 7 through bloodletting, so this is for when you dont want the wall to change color.), 9 = Corpse (also unreachable through bloodletting, this is so that corpses dont get turned into anything), 10 = Fluid (for water, acid, and lava. cannot become a corpse, and overrides corpses in floods)
Muffle[strength] : 0 = does not affect monster noise volumes, 1+ = reduces monster noise volume from other side (to an increasing degree), -1+ = enhances monster noise volume (opposite of positive effect)
[blast]Absorb : 0 = does not affect explosive blasts, 1+ = reduces explosive effect to anything on the opposite side of this terrain from an explosion (higher = better reduction, 10+ is basically explosion nuetralizer, could be used to protect powerups from stray shots), -1+ = Enhances explosive effects (opposite of positive effect, can be used to make a missle blast spray all the way across a map, or can make an imp fireball punch a lengthwise hole in a level...)
Detonate[barrel] : 0 = clear for terrain movement (barrels move over, if terrain is a wall, this is invalid), 1 = Block terrain movement (water, doors, walls, and stairs, blocks movement but dosent destroy), 2 = Destroy moving terrain (lava and acid, destroys and detonates barrels moved into them, valid for walls, because the moving terrain doesnt actually move onto destroy terrain, it just tries and explodes. so a wall that you cant pass, and if you accidentally push a barrel into it, it will explode... im thinking of like an acid-soaked column.)
Move[type] : 0 = Stationary (terrain can't be moved), 1 = Displace (switches with the terrain it moves onto, displacing it.), 3+ = Overwrite (not yet used, would replace the terrain it moves out of with predetermined basic terrain, like empty floor, water, acid, lava, etc.)
[special]Effect : 0 = no special effects, 1 = Explosive1 (creates a radius 1 explosion when destroyed), 2 = Explosive2 (see Explosive1, radius 2), 3 = Explosive3 (see Explosive1, radius 3), 4 = Explosive4 (see Explosive1, radius 4), 5 = Explosive5 (see Explosive1, radius 5), 6 = Transport (DUHHHHH), 7 = DoorOpen (you can figure this out once you see the next one), 8 = DoorClosed (told ya), 9 = Stairs (duh), 10 = Special (special level stairs), 11 = Room (marks walls for rooms for room-sized destroy wall levers.)
Symbol/Color/Name : FIGURE IT OUT!!!
whatcha think? its complicated, but it boils terrain parameters to 2 strings (name and symbol) and a moderate sized handful of number values that will allow terrain specs to be precise and easily debugged if you know that there is a problem. and it will allow alot more variance in the special levels. and once its coded in, it never needs to be changed. unless i forgot a parameter, in which case please mention it. also, don't start with levers, because levers are objects : they can be on top of lava (floods), so there destructibility and all that are not part of terrain. Barrels are Terrain because of their terrain-displacing movement. and, this fixes all the bloodiness confusion!
By the Way, sorry for the length! better to say it all at once, after all!