Damaging and Healing Floors
#1
Damaging and Healing Floors
by Leon Westbrooke
v 1.0
Jun 22 2007


This is a locked, single-post thread from Creation Asylum. Archived here to prevent its loss.
No support is given. If you are the owner of the thread, please contact administration.


Introduction
It sets certain tiles to damage/heal the players upon contact. It does so through terrain tags, and check if the player has moved.

Features
  • Damages/Heals player when touching certain tiles.
  • Uses easy to edit constant variables.
  • You can choose if damage/heal floors will kill the actors or not.


Screenshots

None can really be made, because the screen flashes. Timing would be a hard thing to do with it.

Script
Code:
#===================================
#  Damaging and Healing Floors
#----------------------------------------------------------------------
#
#  Features:
#  -Heals/Damages the actors if they step on certain tiles.
#  -Customizable amount of heal/damage.
#  -Can be based on either percentage or a fixed rate.
#
#  Instructions:
#  -Place this script above Main, but below all other default scripts.
#  -Change the damage and heal tags to different numbers. By default
#     the are 1 for damage, 2 for heal.
#  -On your tilesets, go into the 'terrain' tag, and set all damage floor's
#     terrain number equal to the one set in the script for damage, and
#     do the same for any healing floors.
#
#===================================

#===================================
#  Module
#===================================
module Terrain_Tag_Setup
#--------------------------------------------------------------------
#  Percentage =
#  When true, takes away a percentage rather than a fixed amount.
#--------------------------------------------------------------------
Percentage = true
#--------------------------------------------------------------------
#  Damage_Amount =
#  How much is taken away from each step.  If Percentange = true
#  It will remove that percent.
#--------------------------------------------------------------------
Damage_Amount = 10
#--------------------------------------------------------------------
#  Heal_Amount =
#  How much is taken away from each step.  If Percentange = true
#  It will remove that percent.
#--------------------------------------------------------------------
Heal_Amount = 10
#--------------------------------------------------------------------
#  Kill =
#  if true, damage floors can kill players.
#--------------------------------------------------------------------
Kill = false
#--------------------------------------------------------------------
#  Damage_Tag =
#  The tag number that damages the player.
#--------------------------------------------------------------------
Damage_Tag = 1
#--------------------------------------------------------------------
#  Heal_Tag =
#  The tag number that heals the player.
#--------------------------------------------------------------------
Heal_Tag = 2
end



#===================================
#  Game_Temp
#===================================
class Game_Temp
  attr_accessor :move_confirm
  
  alias leon_flooreffect_gametemp_initialize initialize
  
  def initialize
    @move_confirm = false
    leon_flooreffect_gametemp_initialize
  end
end

#===================================
#  * Scene_Map
#===================================
class Scene_Map

alias leon_gamecharacter_moving_tt update

def update
   leon_gamecharacter_moving_tt
   tts = Terrain_Tag_Setup
   if $game_map.terrain_tag($game_player.x, $game_player.y) == tts::Damage_Tag
     if $game_temp.move_confirm == true
       @counter = 0
       $game_screen.start_flash(Color.new(200, 0, 0, 190), 15)
       Audio.se_play("Audio/SE/117-Fire01", 80, 130)
       for actor in $game_party.actors
         if (actor.hp - tts::Damage_Amount) < 1
           actor.hp = 1
           $game_temp.move_confirm = false
         else
           amt = tts::Damage_Amount
           if tts::Percentage == true
             amt = amt * 0.01 * actor.maxhp
             amt = amt.round
           end
           actor.hp -= amt
           if tts::Kill == false and actor.hp == 0
             actor.hp = 1
           else
             if actor.hp == 0
               @counter += 1
             end
           end
           if @counter == $game_party.actors.size
             $scene = Scene_Gameover.new
           end
         end
       end
       $game_temp.move_confirm = false
     end
   end
   if $game_map.terrain_tag($game_player.x, $game_player.y) == tts::Heal_Tag
     if $game_temp.move_confirm == true
       $game_screen.start_flash(Color.new(0, 200, 200, 190), 15)
       Audio.se_play("Audio/SE/105-Heal01", 80, 130)
       for actor in $game_party.actors
         amt = tts::Heal_Amount
         if tts::Percentage == true
           amt = amt * 0.01 * actor.maxhp
           amt = amt.round
         end
         actor.hp += amt
       end
       $game_temp.move_confirm = false
     end
   end
end
end

#===================================
#  * Game_Player
#===================================
class Game_Player < Game_Character

alias leon_gameactor_update_tt update

def update
   unless moving? or $game_system.map_interpreter.running? or
          @move_route_forcing or $game_temp.message_window_showing
      case Input.dir4
     when 2
       $game_temp.move_confirm = true
     when 4
       $game_temp.move_confirm = true
     when 6
       $game_temp.move_confirm = true
     when 8
       $game_temp.move_confirm = true
     end
   end
   leon_gameactor_update_tt
end
end




Instructions
Place the script above Main, but below all other default scripts.

Compatibility
No known issues.

Terms and Conditions
Please don't distribute this script on any other site without my permission. If you use this script, please give credit where due, that is all I ask, which isn't much.
}




Users browsing this thread: 1 Guest(s)