Proto:Dungeon Siege/Cut Code
This is a sub-page of Proto:Dungeon Siege.
Revision History Several bits of version history was removed between beta and release. |
Contents
Enemies
Test Enemies
Mana Chicken - [t:template,n:mana_chicken] |
---|
doc = "Tasty Mana Fried Chicken. take two."; category_name = "ambients"; specializes = base_chicken; [actor] { [skills] { intelligence = 0, 0, 50; nature_magic = 0, 0, 50; } drops_spellbook = false; } [aspect] { life = 1; max_life = 1; mana = 0; max_mana = 200; mana_recovery_period = 1.0; mana_recovery_unit = 2.0; [textures] { 0=b_c_na_ckn_white; } is_selectable = true; } [common] { [template_triggers] { [*] { action* = call_sfx_script("feathers_flap_white"); condition* = receive_world_message("we_anim_sfx",1); } } } [mind] { jat_guard = world\ai\jobs\actors\good\job_helper_follow.skrit; jat_brain = jat_none; actor_auto_xfers_mana = true; on_friend_entered_ocz_flee = false; sight_range = 12.0; } [inventory] { selected_active_location = il_active_primary_spell; [other] { il_active_primary_spell=spell_mana_channel; } } [physics] { break_effect = feathers_white; explode_when_killed = true; } } |
Heal Chicken - [t:template,n:heal_chicken] |
doc = "Tasty Mana Fried Chicken. take two."; category_name = "ambients"; specializes = base_chicken; [actor] { [skills] { intelligence = 0, 0, 50; nature_magic = 0, 0, 50; } drops_spellbook = false; } [aspect] { life = 1; max_life = 1; mana = 0; max_mana = 200; mana_recovery_period = 1.0; mana_recovery_unit = 2.0; [textures] { 0=b_c_na_ckn_red; } is_selectable = true; } [common] { [template_triggers] { [*] { action* = call_sfx_script("feathers_flap_red"); condition* = receive_world_message("we_anim_sfx",1); } } } [mind] { jat_guard = world\ai\jobs\actors\good\job_helper_follow.skrit; jat_brain = jat_none; actor_auto_heals_others_life = true; on_friend_entered_ocz_flee = false; sight_range = 12.0; } [inventory] { selected_active_location = il_active_primary_spell; [other] { il_active_primary_spell=spell_infuse_life; } } [physics] { break_effect = feathers_red; explode_when_killed = true; } } |
Spells
In release, there are special template_triggers for nature and combat magic. They appear to not have been made as or implemented as of Beta 1 00.05.06.0703.
Animate Dead |
---|
category_name = "magic"; doc = "scroll animate dead"; specializes = base_spell_dark; [aspect] { gold_value = 500; } [common] { description = "Raises a skeleton to do your bidding"; screen_name = "Animate Dead"; } [common] { [template_triggers] { [*] { action* = call_sfx_script( "item_ring" ); condition* = receive_world_message("we_dropped"); } } } [gui] { active_icon = b_gui_ig_i_ic_w_mag_dark; } [inventory] { [delayed_pcontent] { [oneof*] { [all*] { il_main = skeleton; } } } } [magic] { cast_range = 10; cast_reload_delay = 1; is_one_shot = true; mana_cost = 1; max_level = 20; required_level = 10; requires_line_of_sight = true; speed_bias = 1; spell_skill_name = "Animate Dead"; target_type_flags = tt_dead_friend | tt_dead_enemy; usage_context_flags = uc_passive; } } |
Confusion |
category_name = "magic"; doc = "scroll confusion"; specializes = base_spell_good; [aspect] { gold_value = 500; } [common] { screen_name = "Confusion"; } [common] { [template_triggers] { [*] { action* = call_sfx_script( "item_ring" ); condition* = receive_world_message("we_dropped"); } } } [gui] { active_icon = b_gui_ig_i_ic_w_mag_light; } [magic] { apply_enchantments = false; cast_range = 20; cast_reload_delay = 5; effect_duration = 30; is_one_shot = true; mana_cost = 4; requires_line_of_sight = true; target_type_flags = tt_conscious_enemy | tt_unconscious_enemy; usage_context_flags = uc_aggressive; } [spell_switch_alignment] { alignment_freq_max = 5; alignment_freq_min = 3; description = "Confusion spell"; effect_script = confusion; screen_name = "Confused"; } } |
Deathball |
category_name = "magic"; doc = "scroll deathball"; specializes = base_spell_dark; [aspect] { gold_value = 150; } [attack] { damage_max = 10; damage_min = 5; } [common] { description = "Throws a tracking ball of death at an enemy"; screen_name = "Deathball"; [template_triggers] { [*] { action* = call_sfx_script("green_deathball"); condition* = receive_world_message("we_req_cast"); } [*] { action* = call_sfx_script( "item_ring" ); condition* = receive_world_message("we_dropped"); } } } [gui] { active_icon = b_gui_ig_i_ic_w_mag_dark; } [magic] { cast_range = 20; cast_reload_delay = 1; is_one_shot = false; mana_cost = 2; max_level = 10; required_level = 3; requires_line_of_sight = true; speed_bias = 1; spell_skill_name = "Deathball"; target_type_flags = tt_conscious_enemy | tt_unconscious_enemy | tt_breakable | tt_terrain; usage_context_flags = uc_offensive; } } |
Gorack's Deathball |
category_name = "magic"; doc = "scroll gorack deathball"; specializes = base_spell_monster; [attack] { damage_max = 3; damage_min = 2; } [common] { [template_triggers] { [*] { action* = call_sfx_script("green_deathball"); condition* = receive_world_message("we_req_cast"); } } } [magic] { cast_range = 10; cast_reload_delay = 1; is_one_shot = false; mana_cost = 0; requires_line_of_sight = true; speed_bias = 1; target_type_flags = tt_conscious_enemy; usage_context_flags = uc_offensive; } } |
spell_gorack_deathball is still mentioned in the game's code, but was commented out of use. |
Divine Intervention |
category_name = "magic"; doc = "scroll divine intervention"; specializes = base_spell_good; [aspect] { gold_value = 150; } [common] { screen_name = "Divine Intervention"; [template_triggers] { [*] { action* = call_sfx_script( "item_ring" ); condition* = receive_world_message("we_dropped"); } } } [gui] { active_icon = b_gui_ig_i_ic_w_mag_light; } [magic] { cast_range = 10; cast_reload_delay = 1; effect_duration = 60; is_one_shot = true; mana_cost = 1; requires_line_of_sight = true; speed_bias = 1; spell_skill_name = "Divine Intervention"; target_type_flags = tt_unconscious_friend | tt_conscious_friend; usage_context_flags = uc_defensive; [enchantments] { [*] { alteration = alter_strength; description = "Holy Strength"; duration = 60; value = 2*(#magic+10); } [*] { alteration = alter_dexterity; description = "Holy Skill"; duration = 60; value = 2*(#magic+10); } } } [spell_status_effect] { description = blessed; effect_script = divine_intervention; state_name = intervention; } } |
Magic Lantern |
category_name = "magic"; doc = "scroll magic lantern"; specializes = base_spell_good; [aspect] { gold_value = 250; } [common] { screen_name = "Magic Lantern"; [template_triggers] { [*] { action* = call_sfx_script( "item_ring" ); condition* = receive_world_message("we_dropped"); } } } [gui] { active_icon = b_gui_ig_i_ic_w_mag_light; } [magic] { cast_range = 10; cast_reload_delay = 1; effect_duration = 30; is_one_shot = true; mana_cost = 30/(#magic+1); max_level = 5; requires_line_of_sight = true; speed_bias = 1; spell_skill_name = "Magic Lantern"; target_type_flags = tt_unconscious_friend | tt_conscious_friend; usage_context_flags = uc_defensive; } [spell_status_effect] { description = lit; effect_script = magic_lantern; state_name = lantern; } } |
Probably removed as there were no places dark enough to constitute its implementation. Seems to suggest there was plans for darker nights / dungeons. |
Reused in Dungeon Siege II
Mana Plants
/* ============================================================================ ---------------------------------------------------------------------------- File : brain_mana_plant.skrit Author(s) : Bartosz Kijanka Purpose : The mana mushroom will automatically give mana to anyone nearby. ToDo: $$$ Re-evaluate transmitting state only as often as spell re-casting. (C)opyright 2000 Gas Powered Games, Inc. ---------------------------------------------------------------------------- ============================================================================
SetState Meditating$; }
event OnWorldMessage$( eWorldEvent e$, WorldMessage msg$ ) { if( e$ == WE_FRIEND_SPOTTED ) { Go bud$ = MakeGoid( msg$.Data1 ).Go; if( bud$ != NULL ) { if( bud$.Aspect.ManaRatio < 1.0 ) { Go spell$ = m_Go$.Inventory.SelectedSpell; if( spell$ != NULL ) { spell$.Magic.SCast( bud$ ); m_Target$ = bud$.Goid; m_Job$.SetTimer( 0 ); SetState( Transferring$ ); } } } } } event OnEnterState$ { } }
event OnWorldMessage$( eWorldEvent e$, WorldMessage /*msg$*/ ) { if( e$ == WE_JOB_TIMER_DONE ) { Go target$ = m_Target$.Go; if( target$ != NULL ) { if( target$.Aspect.ManaRatio >= 1.0 ) { SetState( Meditating$ ); } } } } event OnEnterState$ { //m_Go$.DebugProbeReport( "attacking\n" ); // $$$ change this period to only as often as required to keep the spell going continuously... // $$$ Rick needs to add interface to Magic for this... m_Job$.SetTimer( 1.0 ); } } |
Quests
Cut Quests
There are several cases where bringing people to places were quests in of themselves.
Ulora_to_Stonebridge |
---|
[*] { name = Ulora_to_Stonebridge; speaker = "Ulora"; speaker_role = "Azunite Scribe"; description = "Escort Ulora to Stonebridge."; sample = s_v_cr_ulora1.mp3; } |
Gyorn_to_Glacern |
[*] { name = Gyorn_to_Glacern; speaker = "Gyorn"; speaker_role = "Old Soldier"; description = "Escort Gyorn to Glacern."; sample = s_v_bt_gyorn1.mp3; } |
There was also a quest featuring a cut character named Ilandro and them asking you to help find their friends. It appears the dialogue was never recorded, and they used a commented out line audio file from Gyorn_to_Glacern.
quest_find_ilandro_friend |
---|
[*] { name = quest_find_ilandro_friend; speaker = "Ilandro"; speaker_role = "Minstrel"; description = "Find Ilandro's friends."; // sample = s_v_bt_gyorn1.mp3; } |
Differences
- Gyorn's quest was slightly different. In the beta it was "Seek out Gyorn in Stonebridge", but in release it's "Seek Gyorn in Stonebridge".