Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*Note to self: Make Potions to heal non-legendaries.
- *Oh dear God, this is probably so snowflakey and shit.
- *Made by Spacemanspark
- */
- /mob/living/simple_animal/pokemon
- name = "Pokemon"
- desc = "Gotta catch 'em all!"
- maxHealth = 100
- health = 100
- attacktext = "used Quick Attack on"
- var/legendary = 0 //Is this a legendary Pokemon? Ex. Mewtwo. If so, then it will have some buffs over normal Pokemon.
- var/evolve1 = 0 //Can this Pokemon evolve further via leveling normally? Ex. Charmander --> Charmeleon --> Charizard
- var/evolve2 = 0 //Can this Pokemon evolve further via other means, such as a stone? Ex. Pikachu --> Raichu.
- var/PowerPoints = 0 //How many attacks a Pokemon can do.
- harm_intent_damage = 5
- melee_damage_lower = 5
- melee_damage_upper = 5
- var/pokedex_entry = 0 //If you can't figure out what this is, you're not a true Pokemon Master.
- var/Pokelevel = 1 //The default level for all spawned Pokemon.
- var/exp = 7 //The ammount of experience one has to gain to get to the next level
- var/exp_initial = 7 //The initial amount of exp the Pokemon had to obtain to reach a new level.
- var/exp_total = 0 //Total number of experience the Pokemon has gained thus far.
- /mob/living/simple_animal/pokemon/New()
- ..()
- if(legendary == 0) //Legendaries are unique (supposedly), so we won't give them a number.
- name = text("[initial(name)] ([rand(1, 1000)])")
- real_name = name
- /mob/living/simple_animal/pokemon/proc/Faint()
- canmove = 0
- if(health >= 25)
- canmove = 1
- if(legendary == 1)
- health += 5
- return
- /mob/living/simple_animal/pokemon/Life()
- ..()
- if (Pokelevel < 100 && health > 20) //Pokemon don't level up past 100, nor do they gain EXP while they have fainted or are ready to evolve.
- exp--
- exp_total++
- if(exp <= 0 && Pokelevel < 100) //Leveling up.
- Pokelevel++
- exp_initial *= 1.6
- exp = exp_initial
- maxHealth += 5
- health += 5
- src << "You are now level [Pokelevel]!"
- playsound(src, 'sound/misc/Levelup.ogg', 10, 1)
- if(evolve1 == 1)
- src << "You feel ready to evolve!" //Lets the player know they can evolve. Reminds them every time they level up.
- if(health < maxHealth) //Legendaries gain health on their own without the need for items.
- if(legendary == 1)
- health += 0.5
- if(health <= 30)
- src << "\red You have fainted!"
- Faint()
- /mob/living/simple_animal/pokemon/adjustBruteLoss()
- if(health < 20)
- return
- ..()
- /mob/living/simple_animal/pokemon/adjustFireLoss()
- if(health < 20)
- return
- ..()
- /mob/living/simple_animal/pokemon/Stat()
- ..()
- statpanel("Status")
- if(ticker && ticker.mode && ticker.mode.name == "AI malfunction")
- if(ticker.mode:malf_mode_declared)
- stat(null, "Time left: [max(ticker.mode:AI_win_timeleft/(ticker.mode:apcs/3), 0)]")
- if(emergency_shuttle)
- var/eta_status = emergency_shuttle.get_status_panel_eta()
- if(eta_status)
- stat(null, eta_status)
- if(client.statpanel == "Status")
- stat(null, "HP: [health]/[maxHealth]")
- stat(null, "Level: [Pokelevel]")
- stat(null, "EXP to next level: [exp]")
- stat(null, "Total EXP: [exp_total]")
- ///Pokeballs!///
- /obj/item/device/pokeball
- name = "Pokeball"
- icon = 'icons/mob/pokemon.dmi'
- icon_state = "pokeball"
- item_state = "pokeball"
- desc = "Used to capture Pokemon and force them to do your bidding."
- w_class = 1.0
- var/mob/captured = null
- afterattack(var/atom/A, mob/user, prox_flag)
- if(!istype(A, /mob/living/simple_animal/pokemon))
- return ..()
- capture(A, user)
- return
- /obj/item/device/pokeball/proc/capture(var/choice as text, var/mob/target, var/mob/U as mob)
- var/mob/living/simple_animal/pokemon/T = target
- if(captured)
- U << "\red <b>Captured failed!</b>: \black The Pokeball already has a Pokemon registered to it!"
- return
- else
- T.forceMove(src)
- T.canmove = 0
- T.faction |= "\ref[U]"
- T.name = "[U.real_name]'s [T.real_name]"
- T.cancel_camera()
- icon_state = "pokeball_c"
- name = "Pokeball: [T.real_name]"
- T << "You have been captured! You now obey [U.name], no matter their state."
- U << "\blue <b>Capture successful!</b>: \black [T.real_name] now obeys you!"
- captured = "[T.name]"
- //Moves//
- /////////////////////////////////The actual Pokemon//////////////////////////////
- //Legendaries//
- /mob/living/simple_animal/pokemon/mewtwo
- name = "Mewtwo"
- desc = "It was created by a scientist after years of horrific gene splicing and DNA engineering experiments."
- icon = 'icons/mob/pokemon.dmi'
- icon_state = "mewtwo"
- icon_living = "mewtwo"
- icon_dead = "mewtwo"
- pokedex_entry = 150
- universal_speak = 1
- flying = 1
- attacktext = "used Psycho Cut on"
- maxHealth = 500
- health = 500
- unsuitable_atmos_damage = 0
- minbodytemp = 0
- maxbodytemp = INFINITY
- legendary = 1
- environment_smash = 3
- speed = -1
- force_threshold = 10
- harm_intent_damage = 20
- melee_damage_lower = 10
- melee_damage_upper = 10
- level = 70
- exp = 7000
- exp_initial = 7000
- PowerPoints = 10
- /mob/living/simple_animal/pokemon/mewtwo/Process_Spacemove(var/movement_dir = 0)
- return 1
- //Non-legendaries//
- /mob/living/simple_animal/pokemon/raichu
- name = "Raichu"
- desc = "Its long tail serves as a ground to protect itself from its own high voltage power."
- icon = 'icons/mob/pokemon.dmi'
- icon_state = "raichu"
- icon_living = "raichu"
- icon_dead = "raichu"
- pokedex_entry = 26
- PowerPoints = 10
- environment_smash = 1
- speed = 0
- harm_intent_damage = 7
- melee_damage_lower = 8
- melee_damage_upper = 8
- /mob/living/simple_animal/pokemon/pikachu
- name = "Pikachu"
- desc = "It keeps its tail raised to monitor its surroundings. If you yank its tail, it will try to bite you."
- icon = 'icons/mob/pokemon.dmi'
- icon_state = "pikachu"
- icon_living = "pikachu"
- icon_dead = "pikachu"
- speak = list("Pika.", "Chu.", "Pika!", "Pika Pika!", "Pikachu!")
- pokedex_entry = 25
- PowerPoints = 5
- /mob/living/simple_animal/pokemon/pikachu/Life() //Screw you too, Byond.
- ..()
- if(Pokelevel == 5)
- evolve1 = 1
- /mob/living/simple_animal/pokemon/pikachu/verb/evolve()
- set category = "Pokemon"
- set name = "Evolve"
- set desc = "Evolve to your next stage."
- if(evolve1 != 1)
- src << "<span class='warning'>You do not yet have enough experience...</span>"
- return
- if(health <= 49)
- src << "<span class='warning'>You are too weak to evolve!</span>"
- return
- src << "<span class='warning'>You evolved into a Raichu!</span>"
- var/mob/living/simple_animal/pokemon/raichu = new/mob/living/simple_animal/pokemon/raichu(get_turf(src.loc))
- mind.transfer_to(raichu)
- qdel(src)
- return
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement