Resident Evil (Coming Soon)

onimike

Resident Evil Remastered brought to text adventure.
Chris Redfield and Jill Valentine are members of an elite task force known as S.T.A.R.S., as they investigate the outskirts of Raccoon City following the disappearance of their team members. They soon become trapped in a mansion infested with zombies and other monsters. The player, having selected to play as Chris or Jill at the start of the game, must explore the mansion to uncover its secrets. Each character has a different story, outcomes, weapons, defenses and more.

Credits

Game Creator Capcom/Biohazard http://www.capcom.co.jp/biohd/

Writting: https://www.gamefaqs.com/ps/198462-resident-evil-directors-cut/faqs/20010

Images and Map layout: http://www.evilresource.com/

Walkthrough: http://www.gamefaqs.com/ps/198454-resident-evil/faqs/59055?page=1

The Pixie for use of Journal Library http://docs.textadventures.co.uk/quest/libraries/journal_library.html
and Custom UI(User Interface)http://textadventures.co.uk/forum/samples/topic/6456/no-longer-failing-to-customise-the-compass-rose

As of now just starting this project I wanted to post game on site to test play-ability in online editor for features and custom UI with save. I am happy enough with the start that's another reason for adding it so early and will give those the link that wish to test or demo what is in so far. Would like to know the way it plays so far is good. Locked up the rest of the mansion for now besides demo area but all is created and connected.

Currently In
Most Main Functions Done now time to set them up!
Main Menu(Choose Start,Options,Load(Not Working ATM)and Exit)
Options Menu(Change font size,color and background color)
Character Selection(Play as Jill or Chris each with different stories(Same intro different scenes,story,weapons,etc. listed above)
Journal to take notes and to record room travel to help navigate with map as i don't now how to put in a map that will work for this game best solution i found) to track
In game "Pause" command(Brings up options menu.)
Main Hall Opening story scenes for both Jill and Chris
First 2 small puzzles
Map (command to show map list only 1st floor map obtainable as of now)
First 2 enemy encounters (Zombie and Cerberus(Zombie dog)each with cut scenes)
Equipable weapons, Defenses, Ammo tracker and Condition monitor
Minor descriptions for now until more main code is done, now its just populating every room with stories for each Jill and Chris (long way to go for completion)
All items,weapons,rooms,maps,etc. Everything has been created all weapons function correctly, different ammo types for Grenade Launcher(WORKS),different weaknesses and so much more in game and functions just not playable to that extent yet(Story First)

Once again if you want to check out what going on so far feel free to email me at onivision @ outlook dot com and i will send you link, didn't want to post as its not near done as far as the story goes.


hegemonkhan

ah awesome, a fellow RE fan, hehe :D

I've never played the games, but I like the movies (well 1 and 2, anyways. The rest have been poorly done --- I'm interested in how they're going to do the last/ending movie --- as to whether it'd be good or not... is another matter)

so, that makes me an "Alice" (Milla Jovovich) fan, and not Jill Valnetine, lol.

RE has a great idea, but they never really gave it a definative plot/direction, unfortunately.

(if you're interested: check out Parasite Eve 1 for the PS1 and the 'Helix' SyFy tv series, really awesome, if you're into zombie/RE/bio-engineering type like stuff)


onimike

Oh yeah HK I played Parasite Eve back when it came out great game. And RE was a favorite of mine with the puzzles and suspense of the zombies thought it would make a great text game.


hegemonkhan

since I just found out you're doing an RE game with different damage/elemental-damage types (and want to use armors, which likely also you'd want to have damage / elemental-damage type resistances/defense/protection):

a more elegant way of doing damage/elemental-damage types, is via Pixie's spell library, where you use Dictionary Attributes, as they allow for handling it (opposing elements: bonus/more damage, penalty/less damage, absorb, reflect, immunity, etc). This is a bit more complex/advanced than using Lists, just be warned.

think of a Dictionary as an 'input->output' box (or as a conversion), you give it an input, it finds the matching item, and returns/outputs that matching item's content:

input: gold_key
does the dictionary contain a 'gold_key' item ???
pretending it does, and that the 'gold_key' item's content/value is: set (gold_door, "locked", false)
thus, it returns it's content/value, (and in this example, since the item is a Script/Function), it's run/activated as well: the gold_door is unlocked.

3 Dictionary Types:

String Dictionary: "STRING 1A" input -> "STRING 1B" output
Object Dictionary: "STRING A" input -> OBJECT_A output
Script Dictionary: "STRING A" input -> Script(s)_A output

String Dictionary Attribute:
"1" = "one"
"2" = "two"
"3" = "three"

if I input "1", I get returned "one"
if I input "2", I get returned "two"
if I input "3", I get returned "three"


String Dictionary Attribute:
"1" = "one"
"2" = "two"
"3" = "three"
"three" = "3"
"two" = "2"
"one" = "1"

if I input "1", I get returned "one"
if I input "2", I get returned "two"
if I input "3", I get returned "three"
if I input "three", I get returned "3"
if I input "two", I get returned "2"
if I input "one", I get returned "1"


returned_value = StringDictionaryItem (global_data_object.example_string_dictionary_attribute, "1")
// returned_value = "one"

returned_value = StringDictionaryItem (global_data_object.example_string_dictionary_attribute, "2")
// returned_value = "two"

returned_value = StringDictionaryItem (global_data_object.example_string_dictionary_attribute, "3")
// returned_value = "three"

returned_value = StringDictionaryItem (global_data_object.example_string_dictionary_attribute, "two")
// returned_value = "2"

returned_value = StringDictionaryItem (global_data_object.example_string_dictionary_attribute, "three")
// returned_value = "3"

returned_value = StringDictionaryItem (global_data_object.example_string_dictionary_attribute, "one")
// returned_value = "1"


<object name="global_data_object">

  <attr name="elemental_string_list_attribute" type="simplestringlist">fire; water; air; earth</attr> // this damage element type list isn't used below, but you'd likely need a list of the elements damage types for other such stuff/usage (for example, if you want to randomly select an element for a monster, or if you need to add/remove elements - which you don't want to be doing with your dictionary for opposite element conversioning). So, there's a purpose to having a list and dictionary, even if they're somewhat similiar to each other.

  <attr name="opposing_elemental_string_dictionary_attribute" type="simplestringdictionary">fire = water; water = fire; earth = air; air = earth</attr>

  <object name="spells_data_object">
    <object name="water_blast_spell">
      <attr name="elemental_type" type="string">water</attr>
      <attr name="damage" type="int">500</attr>
    </object>
  </object>

  <object name="monsters_data_object">
    <object name="fire_dragon">
      <attr name="elemental_type" type="string">fire</attr>
      <attr name="current_life" type="int">1000</attr>
    </object>
  </object>

</object>

// scripting:
//
// spell_combat_function (fire_dragon, water_blast_spell)

<function name="spell_combat_function" parameters="monster_parameter, spell_parameter">

  opposite_spell_elemental_string_variable = StringDictionaryItem (global_data_object.opposing_elemental_string_dictionary_attribute, spell_parameter.elemental_type)

  if (monster_parameter.elemental_type = spell_parameter.elemental_type) {
    monster.current_life = monster_parameter.current_life - (spell_parameter.damage / 2)
  } else if (monster_parameter.elemental_type = opposite_spell_elemental_string_variable) {
    monster_parameter.current_life = monster_parameter.current_life - (spell_paramter.damage * 2)
  } else {
    monster_parameter.current_life = monster_parameter.current_life - spell_parameter.damage
  }

</function>

Question: how much life does the fire dragon have left?
Answer: 0
// fire dragon life = 1000 fire dragon life - (500 water blast spell damage * 2)
// fire dragon life = 1000 fire dragon life - (1000)
// fire dragon life = 0

since the 'water_blast_spell' is 'water' elemental, the 'StringDictionaryItem' takes the 'water' input, and finds that it matches up with the 'water = fire' (again note that this is 'input ---> output', so, the 'water = fire' item is only one way: water ---> fire, which is why you need another item as such: 'fire = water', so you have the opposite direction too: fire ---> water) item in the dictionary, and thus returns 'fire'. Since the fire dragon's element is 'fire' it matches up with the returned 'fire' (which is the opposite of the water blast spell's element), and thus correctly, the water bast spell does double damage against the fire dragon.

the reason is that we can only match up the same things, we can't match up different things (logically/pragmatically impossible), which is why we need to match up the opposite element of the spell with the monster, if it matches up, then it means that the monster and the spell are opposing elements, and thus the monster gets double damage done to it by the spell.

it's a very advanced concept/thinking... but hopefully you get it ??? let me know if you don't... it's not an easy concept/thinking.
(it took me along time to understand it... I looked at Pixie spell library for a long long long time, trying to understand what was going on with it... lol)

obviously, if the monster and the spell are the same element, which we can test/check directly: if (monster.elemental = spell.elemental), then the spell is going to do only half damage (or we could do immunity: no damage, or absorption: heals the monster's life instead of damaging it, or reflection: you get damaged by the spell's damage or half of the spell's damage, instead).

and if the matchup between monster and spell is anything else... then the spell jus does its normal damage to the monster.


if (monster: "fire" = spell: "fire") { // but our 'water_blast_spell' spell is NOT 'fire' elemental (the condition is FALSE: "fire" = "water"), so we go to the next condition check
  the spell only does half of its damage to the fire dragon
} else if (monster: "fire" = "fire" <===== opposite of spell:"water") // our 'water_blast_spell' spell IS 'water' elemental so we do the nested script below (as the condition is TRUE: "fire" = "fire")
  the spell does double damage to the fire dragon!
} else { // we don't get here, as our 'water_blast_spell' is 'water' element. If we used, for example, an 'air' element spell, then we'd get here
  the spell does its normal damage to the fire dragon
}

Pixie is a genius! This is such an ingenius method... (once I finally understood it... laughs)


This topic is now closed. Topics are closed after 60 days of inactivity.

Support

Forums