Advertisement
Guest User

sobrevivencia

a guest
Aug 22nd, 2013
843
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 32.07 KB | None | 0 0
  1.  
  2. =begin
  3. ======================================
  4. Sistema de Sobrevivencia v1.11 (Anteriormente conhecido como Sistema de Necessidades)
  5. Criado por: Apellonyx
  6. Traduçao feita por: Victor Mendes (makervictor)
  7. Lançado: 2 April 2013
  8. Ultima atualizaçao: 5 April 2013
  9. ======================================
  10. Termos de Uso:
  11. Voce é livre para usar esse sistema como quizer, em jogos comerciais ou nao-
  12. comerciais. Se voce editar o script bastante, nao é necessario me creditar
  13. necessary to credit me (desde que claramente seja usado apenas meu código
  14. como uma base para seu script),mas eu gostaria de receber crédito, se for
  15. usado em sua forma atual, ou se apenas modificar algumas coisas do script.
  16. ======================================
  17. Ajuda:
  18. Embora nem sempre estar ativo, eu costumo logar no "rpgmakervxace.com" diariamente,
  19. por isso, se voce tiver alguma pergunta relacionada ao script, voce pode
  20. perguntar lá, no topico em que esse script foi lançado. Apenas um aviso,
  21. eu nao editarei o script para torna-lo compativel com qualquer sistema
  22. de menu especial, mas vou tentar corrigir bugs que vao aparecendo . Se voce
  23. encontrar um, me avise, e eu farei o meu melhor para arrumar o erro.
  24. ======================================
  25. Atualizaçoes:
  26. v1.0: 2 Abril 2013 - Primeira versao. incluído comida, agua, cançaso, e vida.
  27. v1.01: 3 Abril 2013 - Adicionado valores máximos configuráveis para comida,
  28. agua, e cançaso, e fez o máximo para a vida um valor configurável. A
  29. prova de falhas mencionadas nas Instruções v1.0 não é mais necessário.
  30. v1.02: 3 Abril 2013 - Adicionado suporte para uma totalmente configuravel
  31. "logica reversa" , sugerido por esrann.
  32. v1.10: 5 Abril 2013 - Reconfiguração completa usando variáveis globais,
  33. em vez de variavel e switch do jogo. Todos os status sao opcionais,
  34. configuraveis, e podem ser tirados do menu.
  35. v1.11: 17 Maio 2013 - Corrigido um bug sério envolvendo o uso de valores float.
  36. Floats devem funcionar muito bem agora, sem causar o falhas no jogo ou
  37. paradas aleatorias do script. Tambem foi adicionado opacidade do fundo configuravel.
  38. ======================================
  39. Requisitos:
  40. Ainda não existe nenhum requisito para este script. Eu estou trabalhando em um
  41.     script que irá permitir que as variáveis globais possam ser alteradas através da nota,
  42.     mas pode demorar para ser feita.
  43. ======================================
  44. Descriçao:
  45. Esse script configura um sistema de necessidades, que inclui comida, água e descanso, todas
  46.     que afetam a principal necessidade, a vida. A atualização 1.02 também adicionou uma lógica inversa
  47.     estatísticas para a toxina ou manuseio de radiação. Todos as cinco estatísticas, juntamente com suas
  48.     taxas de atualização, são manipulados por variáveis globais e podem ser alteradas a qualquer
  49.     tempo com uma chamada de script simples.
  50. ======================================
  51. Instruçoes:
  52. Primeiro, você vai configurar como deseja que o script seja executado. todas
  53.     as opções estão no primeiro módulo do script, chamado "Anyx". Eu não
  54.     recomendo mudar nada do módulo se você não saber o que você é que esta
  55.     fazendo.
  56.   
  57.     Em segundo lugar, depois de ter todas as suas opções de configuração, você pode ir sobre
  58. as definiçoes dos itens nutritivos. Tudo que você tem a fazer é configurá-lo no banco de dados
  59.     como faz normalmente, e em seguida, anexar um efeito que chama um evento comum.
  60.     Dentro do evento comum, use um dos seguintes scripts chamar para mudar a
  61.     variável apropriada.
  62.  
  63. $survival_v[id] op value
  64. id = O status que você deseja alterar. 1 é para a vida, 2 alimentos, 3 de água, 4 descanço,
  65.       e 5 toxina. Os Ids 6-10 são usados para manter as taxas das estatísticas. 6 é para a vida, 7
  66.       alimentos, 8 de água, 9 de descanso, e 10 toxina (definir qualquer dessas taxas para 0
  67.     se quizer desativar um dos status, sem parar os outros)
  68. op = O operador utilizado para formular o novo valor. + = É usado para adicionar, - = é
  69.       para subtração, * = é para multiplicação / = é para a divisão, e % = é
  70.       para módulos. Há outros, e todos eles funcionam, mas eu não imagino você
  71.       iria usá-los para este script, por isso não vou explicar aqui.
  72. value = O valor que você gostaria de alterar a variável. Por exemplo, se
  73.       você está adicionando 10 a uma variável, colocaria o numero 10.
  74.  
  75. $survival_s[id] = value
  76. id = O status que você deseja alterar. 1 é para a vida, 2 alimentos, 3 de água, 4 descanço,
  77.       e 5 toxina. Os Ids 6-10 são usados para manter as taxas das estatísticas.
  78. value = true/false. Definir o valor como true para ids 1-5 permitirá que o
  79.       status associado apareça. Defini-lo para false irá desativá-lo completamente. Para ids
  80.       6-10, definindo o valor para true escondera o status no menu, mas ele continuara
  81.       sendo atualizado (este pode ser personalizado usando o LIFEHIDEVAL,
  82.       FOODHIDEVAL, WATERHIDEVAL, RESTHIDEVAL e opções TOXINHIDEVAL na
  83.       Módulo Anyx abaixo. Quando a opção de esconder é verdade, que o número será escondido
  84.       a partir do menu, até a estatística é inferior ao valor (STAT) do HIDEVAL, ou acima
  85.       o valor da TOXINHIDEVAL para o stat toxina). Se false, o status será
  86.       disponíveis no menu em todos os momentos.
  87.  
  88. Você não precisa configurar manualmente os valores iniciais de cada variável, pois
  89.     isso pode ser feito no script, mas você precisa ligar o sistema de sobrevivência
  90.     manualmente, ou o script não vai fazer nada.
  91. ======================================
  92. =end
  93.  
  94. $imported = {} if $imported.nil?
  95. $imported['Apellonyx-Survival'] = true
  96.  
  97. puts "Load: Survival System v1.10 by Apellonyx"
  98.  
  99. module Anyx
  100.  
  101. WINXPOS = 0 # Posiçao X da janela de sobrevivencia
  102. WINYPOS = 320 # Posiçao Y da janela de sobrevivencia
  103. WINWIDTH = 160 # Largura da janela de sobrevivencia
  104. WINTEXT = 20 # Tamanho do texto usado na janela de sobrevivencia (Recomendavel 20)
  105. WINOPACITY = 255 # Opacidade da janela de sobrevivencia
  106.  
  107. SURVIVALSWITCH = 1 # O ID do Switch que ativara e desativara o jogo.
  108. ONINBATTLE = true # Se o sistema será atualizado durante as cenas de batalha
  109. DEATHATZERO = true # Se for true, dara GameOver quando o status de vida
  110. # chegar a 0
  111. DEATHFULLTOXIN = true # Se for true, dara GameOver quando o status de Toxina
  112. # chegar a seu nivel maximo
  113.  
  114. LIFEVOCAB = "Life" # Vocabulario usado no status de vida na janela de sobrevivencia
  115. LIFEINIT = 100 # Valor inicial do status de vida no começo de um jogo
  116. LIFERATE = 300 # Número de frames entre as atualizações das estatísticas de vida
  117. LIFEMAX = 100 # Valor maximo da barra de vida.
  118. LIFEEXC = 100 # Valor maximo do status de vida (pode ultrapassar o LIFEMAX)
  119. LIFEENABLE = true # Se for true, a barra de vida sera ativado
  120. LIFEHIDE = false # Se for true, a barra de vida nao aparecera no menu
  121. LIFEHIDEVAL = 100 # Se LIFEHIDE esta true, a barra de vida vai aparecer quando
  122. # ele cai abaixo deste valor.
  123.  
  124. FOODVOCAB = "Food" # Vocabulario usado no status de alimentos na janela de sobrevivencia
  125. FOODINIT = 100 # Valor inicial do status de alimentos no começo de um jogo
  126. FOODRATE = 1200 # Número de frames entre as atualizações das estatísticas de alimentos
  127. FOODMAX = 100 # Valor maximo da barra de alimentos.
  128. FOODEXC = 110 # Valor maximo do status de alimentos (pode ultrapassar o FOODMAX)
  129. FOODMOD = -1.0 # Valor da mudança do status de alimentos cada atualização; se positivo,
  130. # Os valores iram aumentar a estatística ao longo do tempo, se negativo
  131. # os valores iram diminuir a estatística ao longo do tempo, e 0 fará
  132. # com que não atualize ao decorrer do tempo. Aceita valores float.
  133. FOODENABLE = true # Se for true, a barra de alimentos sera ativado
  134. FOODHIDE = false # Se for true, a barra de alimentos nao aparecera no menu
  135. FOODHIDEVAL = 100 # Se FOODHIDE esta true, a barra de alimentos vai aparecer quando
  136. # ele cai abaixo deste valor.
  137.  
  138. WATERVOCAB = "Water" # Vocabulario usado no status de agua na janela de sobrevivencia
  139. WATERINIT = 100 # Valor inicial do status de agua no começo de um jogo
  140. WATERRATE = 900 # Número de frames entre as atualizações das estatísticas de agua
  141. WATERMAX = 100 # Valor maximo da barra de agua.
  142. WATEREXC = 110 # Valor maximo do status de agua (pode ultrapassar o WATERMAX)
  143. WATERMOD = -1.0 # Valor da mudança do status de agua cada atualização; se positivo,
  144. # os valores iram aumentar a estatística ao longo do tempo, se negativo
  145. # os valores iram diminuir a estatística ao longo do tempo, e 0 fará
  146. # com que não atualize ao decorrer do tempo. Aceita valores float.
  147. WATERENABLE = true # Se for true, a barra de agua sera ativado
  148. WATERHIDE = false # Se for true, a barra de agua nao aparecera no menu
  149. WATERHIDEVAL = 100 # Se WATERHIDE esta true, a barra de agua vai aparecer quando
  150. # ele cai abaixo deste valor.
  151.  
  152. RESTVOCAB = "Rest" # Vocabulario usado no status de descanço na janela de sobrevivencia
  153. RESTINIT = 100 # Valor inicial do status de descanço no começo de um jogo
  154. RESTRATE = 1500 # Número de frames entre as atualizações das estatísticas de descanço
  155. RESTMAX = 100 # Valor maximo da barra de descanço.
  156. RESTEXC = 110 # Valor maximo do status de descanço (pode ultrapassar o RESTMAX)
  157. RESTMOD = -1.0 # Valor da mudança do status de descanço cada atualização; se positivo,
  158. # os valores iram aumentar a estatística ao longo do tempo, se negativo
  159. # os valores iram diminuir a estatística ao longo do tempo, e 0 fará
  160. # com que não atualize ao decorrer do tempo. Aceita valores float.
  161. RESTENABLE = true # Se for true, a barra de descanço sera ativado
  162. RESTHIDE = false # Se for true, a barra de descanço nao aparecera no menu
  163. RESTHIDEVAL = 100 # Se RESTHIDE esta true, a barra de descanço vai aparecer quando
  164. # ele cai abaixo deste valor.
  165.  
  166. TOXINVOCAB = "Toxin" # Vocabulario usado no status de Toxina na janela de sobrevivencia
  167. TOXININIT = 0 # Valor inicial do status de descanço no começo de um jogo
  168. TOXINRATE = 100 # Número de frames entre as atualizações das estatísticas de descanço
  169. TOXINMAX = 1000 # Valor maximo do status de toxina
  170. TOXINMOD = 0.1 # Valor da mudança do status de toxina cada atualização; se positivo,
  171. # os valores iram aumentar a estatística ao longo do tempo, se negativo
  172. # os valores iram diminuir a estatística ao longo do tempo, e 0 fará
  173. # com que não atualize ao decorrer do tempo. Aceita valores float.
  174. TOXINENABLE = true # Se for true, a barra de toxina sera ativado
  175. TOXINHIDE = false # Se for true, a barra de toxina nao aparecera no menu
  176. TOXINHIDEVAL = 0 # Se TOXINHIDE esta true, a barra de descanço vai aparecer quando
  177. # ele cai abaixo deste valor.
  178.  
  179. LIFECOLORL = 17 # ID Cor do lado esquerdo da barra de vida
  180. LIFECOLORR = 6 # ID Cor do lado direito da barra de vida
  181. FOODCOLORL = 3 # Cor identificação do lado esquerdo da barra de alimentos
  182. FOODCOLORR = 24 # ID Cor do lado direito da barra de comida
  183. WATERCOLORL = 16 # ID Cor do lado esquerdo da barra de água
  184. WATERCOLORR = 4 # ID Cor do lado direito da barra de água
  185. RESTCOLORL = 31 # ID Cor do lado esquerdo da barra de apoio
  186. RESTCOLORR = 13 # ID Cor do lado direito da barra de apoio
  187. TOXINCOLORL = 10 # ID Cor do lado esquerdo da barra de toxina
  188. TOXINCOLORR = 2 # Cor ID do lado direito da barra de toxina
  189.  
  190. EXCCOLOR = 11 # Cor ID de texto para valores estatísticos mais de 100%
  191. SATCOLOR = 24 # Cor ID de texto para valores estatísticos entre 76 e 100%
  192. AVECOLOR = 17 # Cor ID de texto para valores estatísticos entre 51 e 75%
  193. LOWCOLOR = 14 # Cor ID de texto para valores estatísticos entre 26 e 50%
  194. DANCOLOR = 20 # Cor ID de texto para os valores de dados entre 1 e 25%
  195. DEPCOLOR = 18 # Cor ID de texto para valores estatísticos de 0%
  196.  
  197. ################################################################################
  198. ################################################################################
  199. ### ###
  200. ### Eu não recomendo a edição nas proximas linhas se você não sabe o que ###
  201. ### esta fazendo. Se você souber o que está fazendo pode ir em frente! ###
  202. ### ###
  203. ################################################################################
  204. ################################################################################
  205.  
  206. def self.create_survival_commands
  207. $survival_v = Survival_Variables.new
  208. $survival_s = Survival_Switches.new
  209. $survival_v[1] = LIFEINIT
  210. $survival_v[6] = LIFERATE
  211. $survival_s[1] = LIFEENABLE
  212. $survival_s[6] = LIFEHIDE
  213. $survival_v[2] = FOODINIT
  214. $survival_v[7] = FOODRATE
  215. $survival_s[2] = FOODENABLE
  216. $survival_s[7] = FOODHIDE
  217. $survival_v[3] = WATERINIT
  218. $survival_v[8] = WATERRATE
  219. $survival_s[3] = WATERENABLE
  220. $survival_s[8] = WATERHIDE
  221. $survival_v[4] = RESTINIT
  222. $survival_v[9] = RESTRATE
  223. $survival_s[4] = RESTENABLE
  224. $survival_s[9] = RESTHIDE
  225. $survival_v[5] = TOXININIT
  226. $survival_v[10] = TOXINRATE
  227. $survival_s[5] = TOXINENABLE
  228. $survival_s[10] = TOXINHIDE
  229. end # def self.create_survival_commands
  230.  
  231. class Survival_Variables
  232. def initialize
  233. @data = []
  234. end # def initialize
  235. def [](variable_id)
  236. @data[variable_id] || 0
  237. end # def [](variable_id)
  238. def []=(variable_id, value)
  239. @data[variable_id] = value
  240. on_change
  241. end # def []=(variable_id, value)
  242. def on_change
  243. $game_map.need_refresh = true
  244. end # def on_change
  245. end # class Survival_Variables
  246.  
  247. class Survival_Switches
  248. def initialize
  249. @data = []
  250. end # def initialize
  251. def [](switch_id)
  252. @data[switch_id] || false
  253. end # def [](switch_id)
  254. def []=(switch_id, value)
  255. @data[switch_id] = value
  256. on_change
  257. end # def []=(switch_id, value)
  258. def on_change
  259. $game_map.need_refresh = true
  260. end # def on_change
  261. end # class Survival_Switches
  262.  
  263. def self.update
  264. if $game_switches[SURVIVALSWITCH] == true
  265. if $survival_s[1] == true
  266. if $survival_v[6] > 0
  267. if Graphics.frame_count % $survival_v[6] == 0
  268. Anyx.life_update
  269. end # if Graphics.frame_count % $survival_v[6] == 0
  270. end # if $survival_v[6] > 0
  271. end # if $survival_s[1] == true
  272. if $survival_s[2] == true
  273. if $survival_v[7] > 0
  274. if Graphics.frame_count % $survival_v[7] == 0
  275. if $survival_v[2] < FOODEXC
  276. $survival_v[2] += FOODMOD if $survival_v[2] > 0
  277. end
  278. end # if Graphics.frame_count % $survival_v[7] == 0
  279. end # if $survival_v[7] > 0
  280. end # if $survival_s[1] == true
  281. if $survival_s[3] == true
  282. if $survival_v[8] > 0
  283. if Graphics.frame_count % $survival_v[8] == 0
  284. if $survival_v[3] < WATEREXC
  285. $survival_v[3] += WATERMOD if $survival_v[3] > 0
  286. end
  287. end # if Graphics.frame_count % $survival_v[8] == 0
  288. end # if $survival_v[8] > 0
  289. end # if $survival_s[3] == true
  290. if $survival_s[4] == true
  291. if $survival_v[9] > 0
  292. if Graphics.frame_count % $survival_v[9] == 0
  293. if $survival_v[4] < RESTEXC
  294. $survival_v[4] += RESTMOD if $survival_v[4] > 0
  295. end
  296. end # if Graphics.frame_count % $survival_v[9] == 0
  297. end # if $survival_v[9] > 0
  298. end # if $survival_s[4] == true
  299. if $survival_s[5] == true
  300. if $survival_v[10] > 0
  301. if Graphics.frame_count % $survival_v[10] == 0
  302. if $survival_v[5] < TOXINMAX
  303. $survival_v[5] += TOXINMOD if $survival_v[5] > 0
  304. end
  305. end # if Graphics.frame_count % $survival_v[10] == 0
  306. end # if $survival_v[10] > 0
  307. end # if $survival_s[5] == true
  308. $survival_v[1] = 0 if $survival_v[1] < 0
  309. $survival_v[2] = 0 if $survival_v[2] < 0
  310. $survival_v[3] = 0 if $survival_v[3] < 0
  311. $survival_v[4] = 0 if $survival_v[4] < 0
  312. $survival_v[5] = 0 if $survival_v[5] < 0
  313. $survival_v[1] = LIFEEXC if $survival_v[1] > LIFEEXC
  314. $survival_v[2] = FOODEXC if $survival_v[2] > FOODEXC
  315. $survival_v[3] = WATEREXC if $survival_v[3] > WATEREXC
  316. $survival_v[4] = RESTEXC if $survival_v[4] > RESTEXC
  317. $survival_v[5] = TOXINMAX if $survival_v[5] > TOXINMAX
  318. if $survival_v[1] <= 0
  319. SceneManager.call(Scene_Gameover) if DEATHATZERO
  320. end # if $survival_v[1] <= 0
  321. if $survival_v[5] >= TOXINMAX
  322. SceneManager.call(Scene_Gameover) if DEATHFULLTOXIN
  323. end # if $survival_v[5] >= TOXINMAX
  324. end # if $game_switches[SURVIVALSWITCH] == true
  325. end # def update
  326.  
  327. def self.life_update
  328. if $survival_s[2] == true
  329. food_25 = FOODMAX / 4
  330. food_26 = food_25 + 0.001
  331. food_50 = food_25 * 2
  332. food_51 = food_50 + 0.001
  333. food_75 = food_25 * 3
  334. food_76 = food_75 + 0.001
  335. food_mod = -0.3 if 0 >= $survival_v[2]
  336. food_mod = -0.2 if (1..food_25) === $survival_v[2]
  337. food_mod = -0.1 if (food_26..food_50) === $survival_v[2]
  338. food_mod = 0.0 if (food_51..food_75) === $survival_v[2]
  339. food_mod = 0.1 if (food_76..FOODMAX) === $survival_v[2]
  340. food_mod = 0.2 if FOODMAX < $survival_v[2]
  341. else
  342. food_mod = 0
  343. end # if $survival_s[2] == true
  344. if $survival_s[3] == true
  345. water_25 = WATERMAX / 4
  346. water_26 = water_25 + 0.001
  347. water_50 = water_25 * 2
  348. water_51 = water_50 + 0.001
  349. water_75 = water_25 * 3
  350. water_76 = water_75 + 0.001
  351. water_mod = -0.3 if 0 >= $survival_v[3]
  352. water_mod = -0.2 if (1..water_25) === $survival_v[3]
  353. water_mod = -0.1 if (water_26..water_50) === $survival_v[3]
  354. water_mod = 0.0 if (water_51..water_75) === $survival_v[3]
  355. water_mod = 0.1 if (water_76..WATERMAX) === $survival_v[3]
  356. water_mod = 0.2 if WATERMAX < $survival_v[3]
  357. else
  358. water_mod = 0
  359. end # if $survival_s[4] == true
  360. if $survival_s[4] == true
  361. rest_25 = RESTMAX / 4
  362. rest_26 = rest_25 + 0.001
  363. rest_50 = rest_25 * 2
  364. rest_51 = rest_50 + 0.001
  365. rest_75 = rest_25 * 3
  366. rest_76 = rest_75 + 0.001
  367. rest_mod = -0.3 if 0 >= $survival_v[4]
  368. rest_mod = -0.2 if (1..rest_25) === $survival_v[4]
  369. rest_mod = -0.1 if (rest_26..rest_50) === $survival_v[4]
  370. rest_mod = 0.0 if (rest_51..rest_75) === $survival_v[4]
  371. rest_mod = 0.1 if (rest_76..RESTMAX) === $survival_v[4]
  372. rest_mod = 0.2 if RESTMAX < $survival_v[4]
  373. else
  374. rest_mod = 0
  375. end # if $survival_s[4] == true
  376. if $survival_s[5] == true
  377. toxin_25 = TOXINMAX / 4
  378. toxin_26 = toxin_25 + 0.001
  379. toxin_50 = toxin_25 * 2
  380. toxin_51 = toxin_50 + 0.001
  381. toxin_75 = toxin_25 * 3
  382. toxin_76 = toxin_75 + 0.001
  383. toxin_99 = TOXINMAX - 0.001
  384. toxin_mod = 0.1 if 0 >= $survival_v[5]
  385. toxin_mod = 0.0 if (1..toxin_25) === $survival_v[5]
  386. toxin_mod = -0.2 if (toxin_26..toxin_50) === $survival_v[5]
  387. toxin_mod = -0.4 if (toxin_51..toxin_75) === $survival_v[5]
  388. toxin_mod = -0.6 if (toxin_76..toxin_99) === $survival_v[5]
  389. toxin_mod = -0.8 if TOXINMAX <= $survival_v[5]
  390. else
  391. toxin_mod = 0.0
  392. end # if $survival_s[5] == true
  393. life_mod = food_mod + water_mod + rest_mod + toxin_mod
  394. $survival_v[1] += life_mod.round.to_i
  395. end # def life_update()
  396.  
  397. end # module Anyx
  398.  
  399. class Scene_Title
  400. alias survival_new_game command_new_game
  401. def command_new_game
  402. Anyx.create_survival_commands
  403. survival_new_game
  404. end # def command_new_game
  405. end # class Scene_Title
  406.  
  407. class Scene_Map < Scene_Base
  408. alias survival_map_update update
  409. def update
  410. Anyx.update
  411. survival_map_update
  412. end # def update
  413. end # class Scene_Base
  414.  
  415. class Scene_Battle < Scene_Base
  416. alias survival_battle_update update
  417. def update
  418. if Anyx::ONINBATTLE == true
  419. Anyx.update
  420. survival_battle_update
  421. end # if Anyx::ONINBATTLE == true
  422. end # def update
  423. end # class Scene_Base
  424.  
  425. class Scene_Menu < Scene_MenuBase
  426. alias survival_menu_start start
  427. def start
  428. create_survival_window
  429. survival_menu_start
  430. end # def start
  431. def create_survival_window
  432. barcount = 0
  433. if $survival_s[1] == true
  434. barcount += 1 if $survival_s[6] == false || $survival_v[1] < Anyx::LIFEHIDEVAL
  435. end # if $survival_s[1] == true
  436. if $survival_s[2] == true
  437. barcount += 1 if $survival_s[7] == false || $survival_v[2] < Anyx::FOODHIDEVAL
  438. end # if $survival_s[2] == true
  439. if $survival_s[3] == true
  440. barcount += 1 if $survival_s[8] == false || $survival_v[3] < Anyx::WATERHIDEVAL
  441. end # if $survival_s[3] == true
  442. if $survival_s[4] == true
  443. barcount += 1 if $survival_s[9] == false || $survival_v[4] < Anyx::RESTHIDEVAL
  444. end # if $survival_s[4] == true
  445. if $survival_s[5] == true
  446. barcount += 1 if $survival_s[10] == false || $survival_v[5] > Anyx::TOXINHIDEVAL
  447. end # if $survival_s[5] == true
  448. @survival_window = Window_Survival.new
  449. @survival_window.contents.draw_text(0, 0, 500, 24, " Survival System") if barcount == 0
  450. barcount -= 1 if barcount >= 1
  451. survivalwinypos = Anyx::WINYPOS - (24 * barcount)
  452. @survival_window.x = Anyx::WINXPOS
  453. @survival_window.y = survivalwinypos
  454. @survival_window.opacity = Anyx::WINOPACITY
  455. end # def create_survival_window
  456. end # class Scene_Menu < Scene_MenuBase
  457.  
  458. class Window_Survival < Window_Base
  459. def initialize
  460. winheight = 0
  461. if $survival_s[1] == true
  462. winheight += 1 if $survival_s[6] == false || $survival_v[1] < Anyx::LIFEHIDEVAL
  463. end # if $survival_s[1] == true
  464. if $survival_s[2] == true
  465. winheight += 1 if $survival_s[7] == false || $survival_v[2] < Anyx::FOODHIDEVAL
  466. end # if $survival_s[2] == true
  467. if $survival_s[3] == true
  468. winheight += 1 if $survival_s[8] == false || $survival_v[3] < Anyx::WATERHIDEVAL
  469. end # if $survival_s[3] == true
  470. if $survival_s[4] == true
  471. winheight += 1 if $survival_s[9] == false || $survival_v[4] < Anyx::RESTHIDEVAL
  472. end # if $survival_s[4] == true
  473. if $survival_s[5] == true
  474. winheight += 1 if $survival_s[10] == false || $survival_v[5] > Anyx::TOXINHIDEVAL
  475. end # if $survival_s[5] == true
  476. if winheight == 0
  477. winheight = 1
  478. end # if winheight == 0
  479. super(0, 0, Anyx::WINWIDTH, fitting_height(winheight))
  480. self.opacity = Anyx::WINOPACITY
  481. refresh
  482. end # def initialize
  483.  
  484. def exc_color
  485. text_color(Anyx::EXCCOLOR)
  486. end # def exc_color
  487. def sat_color
  488. text_color(Anyx::SATCOLOR)
  489. end # def sat_color
  490. def ave_color
  491. text_color(Anyx::AVECOLOR)
  492. end # def ave_color
  493. def low_color
  494. text_color(Anyx::LOWCOLOR)
  495. end # def low_color
  496. def dan_color
  497. text_color(Anyx::DANCOLOR)
  498. end # def dan_color
  499. def dep_color
  500. text_color(Anyx::DEPCOLOR)
  501. end # def dep_color
  502.  
  503. def refresh
  504. contents.clear
  505. contents.font.size = Anyx::WINTEXT
  506. lineheight = 0
  507. if $survival_s[1] == true
  508. if $survival_s[6] == false || $survival_v[1] < Anyx::LIFEHIDEVAL
  509. draw_life(0,0,lineheight)
  510. lineheight += 24
  511. end # if $survival_s[6] == false || $survival_v[1] < Anyx::LIFEHIDEVAL
  512. end # if $survival_s[1] == true
  513. if $survival_s[2] == true
  514. if $survival_s[7] == false || $survival_v[2] < Anyx::FOODHIDEVAL
  515. draw_food(0,0,lineheight)
  516. lineheight += 24
  517. end # if $survival_s[7] == false || $survival_v[2] < Anyx::FOODHIDEVAL
  518. end # if $survival_s[2] == true
  519. if $survival_s[3] == true
  520. if $survival_s[8] == false || $survival_v[3] < Anyx::WATERHIDEVAL
  521. draw_water(0,0,lineheight)
  522. lineheight += 24
  523. end # if $survival_s[8] == false || $survival_v[3] < Anyx::WATERHIDEVAL
  524. end # if $survival_s[3] == true
  525. if $survival_s[4] == true
  526. if $survival_s[9] == false || $survival_v[4] < Anyx::RESTHIDEVAL
  527. draw_rest(0,0,lineheight)
  528. lineheight += 24
  529. end # if $survival_s[9] == false || $survival_v[4] < Anyx::RESTHIDEVAL
  530. end # if $survival_s[4] == true
  531. if $survival_s[5] == true
  532. if $survival_s[10] == false || $survival_v[5] > Anyx::TOXINHIDEVAL
  533. draw_toxin(0,0,lineheight)
  534. lineheight += 24
  535. end # if $survival_s[10] == false || $survival_v[5] > Anyx::TOXINHIDEVAL
  536. end # if $survival_s[5] == true
  537. end # def refresh
  538.  
  539. def draw_life(actor, x, y, width = Anyx::WINWIDTH - 22)
  540. life_25 = Anyx::LIFEMAX / 4
  541. life_26 = life_25 + 0.001
  542. life_50 = life_25 * 2
  543. life_51 = life_50 + 0.001
  544. life_75 = life_25 * 3
  545. life_76 = life_75 + 0.001
  546. life_99 = Anyx::LIFEMAX - 0.001
  547. life_color = dep_color if 1 > $survival_v[1]
  548. life_color = dan_color if (1..life_25) === $survival_v[1]
  549. life_color = low_color if (life_26..life_50) === $survival_v[1]
  550. life_color = ave_color if (life_51..life_75) === $survival_v[1]
  551. life_color = sat_color if (life_76..life_99) === $survival_v[1]
  552. life_color = exc_color if Anyx::LIFEMAX <= $survival_v[1]
  553. life_rate = $survival_v[1] / Anyx::LIFEMAX.to_f
  554. draw_gauge(x, y, width, life_rate, text_color(Anyx::LIFECOLORL), text_color(Anyx::LIFECOLORR))
  555. change_color(system_color)
  556. draw_text(x, y, 100, line_height, Anyx::LIFEVOCAB)
  557. draw_current_and_max_values(x, y, width, $survival_v[1].round.to_i, Anyx::LIFEMAX, life_color, life_color)
  558. end # def draw_life(actor, x, y, width = Anyx::WINWIDTH - 22)
  559. def draw_food(actor, x, y, width = Anyx::WINWIDTH - 22)
  560. food_25 = Anyx::FOODMAX / 4
  561. food_26 = food_25 + 0.001
  562. food_50 = food_25 * 2
  563. food_51 = food_50 + 0.001
  564. food_75 = food_25 * 3
  565. food_76 = food_75 + 0.001
  566. food_99 = Anyx::FOODMAX - 0.001
  567. food_color = dep_color if 1 > $survival_v[2]
  568. food_color = dan_color if (1..food_25) === $survival_v[2]
  569. food_color = low_color if (food_26..food_50) === $survival_v[2]
  570. food_color = ave_color if (food_51..food_75) === $survival_v[2]
  571. food_color = sat_color if (food_76..food_99) === $survival_v[2]
  572. food_color = exc_color if Anyx::FOODMAX <= $survival_v[2]
  573. food_rate = $survival_v[2] / Anyx::FOODMAX.to_f
  574. draw_gauge(x, y, width, food_rate, text_color(Anyx::FOODCOLORL), text_color(Anyx::FOODCOLORR))
  575. change_color(system_color)
  576. draw_text(x, y, 100, line_height, Anyx::FOODVOCAB)
  577. draw_current_and_max_values(x, y, width, $survival_v[2].round.to_i, Anyx::FOODMAX, food_color, food_color)
  578. end # def draw_food(actor, x, y, width = Anyx::WINWIDTH - 22)
  579. def draw_water(actor, x, y, width = Anyx::WINWIDTH - 22)
  580. water_25 = Anyx::WATERMAX / 4
  581. water_26 = water_25 + 0.001
  582. water_50 = water_25 * 2
  583. water_51 = water_50 + 0.001
  584. water_75 = water_25 * 3
  585. water_76 = water_75 + 0.001
  586. water_99 = Anyx::WATERMAX - 0.001
  587. water_color = dep_color if 1 > $survival_v[3]
  588. water_color = dan_color if (1..water_25) === $survival_v[3]
  589. water_color = low_color if (water_26..water_50) === $survival_v[3]
  590. water_color = ave_color if (water_51..water_75) === $survival_v[3]
  591. water_color = sat_color if (water_76..water_99) === $survival_v[3]
  592. water_color = exc_color if Anyx::WATERMAX <= $survival_v[3]
  593. water_rate = $survival_v[3] / Anyx::WATERMAX.to_f
  594. draw_gauge(x, y, width, water_rate, text_color(Anyx::WATERCOLORL), text_color(Anyx::WATERCOLORR))
  595. change_color(system_color)
  596. draw_text(x, y, 100, line_height, Anyx::WATERVOCAB)
  597. draw_current_and_max_values(x, y, width, $survival_v[3].round.to_i, Anyx::WATERMAX, water_color, water_color)
  598. end # def draw_water(actor, x, y, width = Anyx::WINWIDTH - 22)
  599. def draw_rest(actor, x, y, width = Anyx::WINWIDTH - 22)
  600. rest_25 = Anyx::WATERMAX / 4
  601. rest_26 = rest_25 + 0.001
  602. rest_50 = rest_25 * 2
  603. rest_51 = rest_50 + 0.001
  604. rest_75 = rest_25 * 3
  605. rest_76 = rest_75 + 0.001
  606. rest_99 = Anyx::RESTMAX - 0.001
  607. rest_color = dep_color if 1 > $survival_v[4]
  608. rest_color = dan_color if (1..rest_25) === $survival_v[4]
  609. rest_color = low_color if (rest_26..rest_50) === $survival_v[4]
  610. rest_color = ave_color if (rest_51..rest_75) === $survival_v[4]
  611. rest_color = sat_color if (rest_76..rest_99) === $survival_v[4]
  612. rest_color = exc_color if Anyx::RESTMAX <= $survival_v[4]
  613. rest_rate = $survival_v[4] / Anyx::RESTMAX.to_f
  614. draw_gauge(x, y, width, rest_rate, text_color(Anyx::RESTCOLORL), text_color(Anyx::RESTCOLORR))
  615. change_color(system_color)
  616. draw_text(x, y, 100, line_height, Anyx::RESTVOCAB)
  617. draw_current_and_max_values(x, y, width, $survival_v[4].round.to_i, Anyx::RESTMAX, rest_color, rest_color)
  618. end # def draw_rest(actor, x, y, width = Anyx::WINWIDTH - 22)
  619. def draw_toxin(actor, x, y, width = Anyx::WINWIDTH - 22)
  620. toxin_25 = Anyx::TOXINMAX / 4
  621. toxin_26 = toxin_25 + 0.001
  622. toxin_50 = toxin_25 * 2
  623. toxin_51 = toxin_50 + 0.001
  624. toxin_75 = toxin_25 * 3
  625. toxin_76 = toxin_75 + 0.001
  626. toxin_99 = Anyx::TOXINMAX - 0.001
  627. toxin_color = exc_color if 1 > $survival_v[5]
  628. toxin_color = sat_color if (1..toxin_25) === $survival_v[5]
  629. toxin_color = ave_color if (toxin_26..toxin_50) === $survival_v[5]
  630. toxin_color = low_color if (toxin_51..toxin_75) === $survival_v[5]
  631. toxin_color = dan_color if (toxin_76..toxin_99) === $survival_v[5]
  632. toxin_color = dep_color if Anyx::TOXINMAX <= $survival_v[5]
  633. toxin_rate = $survival_v[5] / Anyx::TOXINMAX.to_f
  634. draw_gauge(x, y, width, toxin_rate, text_color(Anyx::TOXINCOLORL), text_color(Anyx::TOXINCOLORR))
  635. change_color(system_color)
  636. draw_text(x, y, 100, line_height, Anyx::TOXINVOCAB)
  637. draw_current_and_max_values(x, y, width, $survival_v[5].round.to_i, Anyx::TOXINMAX, toxin_color, toxin_color)
  638. end # def draw_toxin(actor, x, y, width = Anyx::WINWIDTH - 22)
  639. end # class
  640.  
  641. module DataManager
  642. def self.make_save_contents
  643. contents = {}
  644. contents[:system] = $game_system
  645. contents[:timer] = $game_timer
  646. contents[:message] = $game_message
  647. contents[:switches] = $game_switches
  648. contents[:variables] = $game_variables
  649. contents[:self_switches] = $game_self_switches
  650. contents[:actors] = $game_actors
  651. contents[:party] = $game_party
  652. contents[:troop] = $game_troop
  653. contents[:map] = $game_map
  654. contents[:player] = $game_player
  655. contents[:anyx_ss] = $survival_s
  656. contents[:anyx_sv] = $survival_v
  657. contents
  658. end # self.make_save_contents
  659. def self.extract_save_contents(contents)
  660. $game_system = contents[:system]
  661. $game_timer = contents[:timer]
  662. $game_message = contents[:message]
  663. $game_switches = contents[:switches]
  664. $game_variables = contents[:variables]
  665. $game_self_switches = contents[:self_switches]
  666. $game_actors = contents[:actors]
  667. $game_party = contents[:party]
  668. $game_troop = contents[:troop]
  669. $game_map = contents[:map]
  670. $game_player = contents[:player]
  671. $survival_s = contents[:anyx_ss]
  672. $survival_v = contents[:anyx_sv]
  673. end # self.extract_save_contents(contents)
  674. end # module DataManager
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement