ID:2149788
 
(See the best response by Ter13.)
Code:
mob/var/
ascended_ssj = 0
gone_ssj2 = 0
mob/proc/Saiyan_Trans()
var/trans_time = 13
if(src.doing||src.buku||src.dual_training||src.selftraining||src.boxing||src.meditation||src.meditate||src.KO) return
else switch(src.form)
if("")if(src.powerlevel_max >= 850000)
if(src.chromosome = "Honour")
src.aura_on = 1
call(src,"Aura")()
if(!src.doing) src.doing ++
src.Icon_State("enrage")
src.frozen = 1
sleep(19)
src.Power_Redefine()
src.powerlevel *= 130
src.ki *= 80
src.strength *= 300
src.defence *= 90
src.block += 2
src.dodge += 5
src.critical += 2
src.reflect += 2
src.counter += 5
src.speed = 3
src.underlays += ssj_aura
spawn(25) src.underlays -= ssj_aura
src.SSJ_Hair_Apply()
spawn(5)
view(6) << "<font color = yellow>[src.name] screams in an Uncontrollable Rage as their Hair Spikes up and turns Gold!"
new/obj/techs/Overlays/Crater_Small(src.loc)
src.form = "Super Saiyan"
if(src.chromosome = "Pride")
if(!src.doing) src.doing ++
src.Icon_State("enrage")
src.frozen = 1
sleep(trans_time)
src.Power_Redefine()
src.overlays -= src.aura
src.underlays += ssj_aura
spawn(25) src.underlays -= ssj_aura
src.powerlevel *= 230
src.ki *= 180
src.strength *= 200
src.defence *= 190
src.block += 3
src.dodge += 6
src.critical += 3
src.reflect += 3
src.counter += 6
src.speed = 2.8
src.ASSJ_Hair_Apply()
view(6) << "<I><font color = yellow>[src.name] screams in rage as their Hair Spikes up and turns Light Gold!</I>"
src.form = "Ascended Super Saiyan"
if(src.chromosome = "Legend")
src.form = "Restrained Super Saiyan"
src.Power_Redefine()
src.powerlevel *= 250
src.ki *= 100
src.strength *= 600
src.defence *= 300
src.block += 2
src.dodge += 2
src.critical += 5
src.reflect += 5
src.counter += 2
src.speed = 3.8
src.overlays -= src.goku_hair_ssj
src.overlays -= src.gohan_adult_hair_ssj
src.overlays -= src.gohan_teen_hair_ssj
src.overlays -= src.future_gohan_hair_ssj
src.overlays -= src.raditz_hair_ssj
src.overlays -= src.vegeta_hair_ssj
src.overlays -= src.trunks_long_hair_ssj
src.overlays -= src.goku_hair_assj
src.overlays -= src.gohan_adult_hair_assj
src.overlays -= src.gohan_teen_hair_assj
src.overlays -= src.future_gohan_hair_assj
src.overlays -= src.vegeta_hair_assj
src.overlays -= src.trunks_long_hair_assj
src.overlays -= src.goku_hair_ussj
src.overlays -= src.gohan_adult_hair_ussj
src.overlays -= src.gohan_teen_hair_ussj
src.overlays -= src.future_gohan_hair_ussj
src.overlays -= src.vegeta_hair_ussj
src.overlays -= src.trunks_long_hair_ussj
view(6) << "<font color = green>[src.name]'s power surges as they transform in to a Super Saiyan?!"
src.icon = 'Brollly.dmi'
if("Super Saiyan"||"Ascended Super Saiyan")if(src.powerlevel_max >= 2500000)
if(!src.doing) src.doing ++
src.Icon_State("enrage")
src.frozen = 1
sleep(trans_time)
src.Power_Redefine()
src.overlays -= aura
src.underlays += ssj_aura
spawn(25) src.underlays -= ssj_aura
src.overlays += small_blue_elec
src.powerlevel *= 318
src.ki *= 313
src.strength *= 315
src.defence *= 314
src.block -= 5
src.dodge -= 15
src.critical += 10
src.reflect -= 5
src.counter -= 5
src.speed = 7
view(6) << "<font color = yellow>[src.name]'s Muscles Bulge and their Hair Spikes up and turns Gold!"
src.USSJ_Apply()
new/obj/techs/Overlays/Crater_Small(src.loc)
src.form = "Ultra Super Saiyan"
if("Restrained Super Saiyan")if(src.powerlevel_max >= 15000000)
src.form = "True Super Saiyan"
src.icon = 'Brolly1.dmi'
src.Power_Redefine()
src.powerlevel *= 400
src.ki *= 300
src.strength *= 800
src.defence *= 800
src.block += 4
src.dodge += 4
src.critical += 7
src.reflect += 7
src.counter += 4
src.speed = 3
view(6) << "<font color = green>[src.name]'s power surges as they transform in to the True Super Saiyan!"
new/obj/techs/Overlays/Crater_Small(src.loc)
if("True Super Saiyan")if(src.powerlevel_max >= 50000000)
src.form = "Legendary Super Saiyan"
src.icon = 'Brolly2.dmi'
src.overlays += small_purple_elec
src.Power_Redefine()
src.powerlevel *= 500
src.ki *= 500
src.strength *= 900
src.defence *= 900
src.block += 6
src.dodge += 6
src.critical += 8
src.reflect += 8
src.counter += 6
src.speed = 2.5
view(6) << "<font color = green>[src.name]'s power surges as they transform in to the Legendary Super Saiyan!"
new/obj/techs/Overlays/Crater_Small(src.loc)
if("Legendary Super Saiyan")if(src.powerlevel_max >= 100000000)
src.form = "Berserk Super Saiyan"
src.icon = 'Brolly3.dmi'
src.overlays -= small_purple_elec
src.overlays += big_purple_elec
src.Power_Redefine()
src.powerlevel *= 1000
src.ki *= 1000
src.strength *= 1000
src.defence *= 1000
src.block += 45
src.dodge += 10
src.critical += 12
src.reflect += 12
src.counter += 10
src.speed = 1.8
view(6) << "<font color = green>[src.name]'s power surges as they morph into their 5th Form!"
new/obj/techs/Overlays/Crater_Center(src.loc)
if("Berserk Super Saiyan")if(src.powerlevel_max >= 150000000)
src.form = "Final Form"
src.icon = 'Brolly4.dmi'
src.overlays -= big_purple_elec
src.overlays += big_purple_elec
src.Power_Redefine()
src.powerlevel *= 1800
src.ki *= 1800
src.strength *= 1800
src.defence *= 1800
src.block += 9
src.dodge += 9
src.critical += 11
src.reflect += 11
src.counter += 9
src.speed = 1.8
view(6) << "<font color = green>[src.name]'s power surges as they morph into their Final Form!"
new/obj/techs/Overlays/Crater_Center(src.loc)
if("Ultra Super Saiyan")if(src.powerlevel_max >= 5000000)
if(!src.doing) src.doing ++
src.Icon_State("enrage")
src.frozen = 1
sleep(trans_time)
src.Power_Redefine()
src.overlays -= aura
src.underlays += ssj_aura
spawn(25) src.underlays -= ssj_aura
src.overlays -= small_blue_elec
src.overlays += big_blue_elec
src.powerlevel *= 423
src.ki *= 418
src.strength *= 420
src.defence *= 419
src.block += 4
src.dodge += 7
src.critical += 4
src.reflect += 4
src.counter += 7
src.speed = 2.3
src.ASSJ_Hair_Apply()
view(6) << "<font color = yellow>[src.name] screams in rage as their Hair Spikes up and Electricity sparks around them!"
src.Skin_Apply()
new/obj/techs/Overlays/Crater_Small(src.loc)
src.form = "Super Saiyan 2"
if("Super Saiyan 2")if(src.powerlevel_max >= 5000000)
if(!src.doing) src.doing ++
src.Icon_State("enrage")
src.frozen = 1
sleep(trans_time)
src.Power_Redefine()
src.overlays -= src.goku_hair_ssj
src.overlays -= src.gohan_adult_hair_ssj
src.overlays -= src.gohan_teen_hair_ssj
src.overlays -= src.future_gohan_hair_ssj
src.overlays -= src.raditz_hair_ssj
src.overlays -= src.vegeta_hair_ssj
src.overlays -= src.trunks_long_hair_ssj
src.overlays -= src.goku_hair_assj
src.overlays -= src.gohan_adult_hair_assj
src.overlays -= src.gohan_teen_hair_assj
src.overlays -= src.future_gohan_hair_assj
src.overlays -= src.vegeta_hair_assj
src.overlays -= src.trunks_long_hair_assj
src.overlays -= src.goku_hair_ussj
src.overlays -= src.gohan_adult_hair_ussj
src.overlays -= src.gohan_teen_hair_ussj
src.overlays -= src.future_gohan_hair_ussj
src.overlays -= src.vegeta_hair_ussj
src.overlays -= src.trunks_long_hair_ussj
src.overlays += src.hair_ssj3
src.overlays -= aura
src.underlays += ssj_aura
spawn(25) src.underlays -= ssj_aura
src.powerlevel *= 528
src.ki *= 523
src.strength *= 525
src.defence *= 524
src.block += 6
src.dodge += 10
src.critical += 6
src.reflect += 6
src.counter += 10
src.speed = 1.5
view(6) << "<font color = yellow>[src.name] screams as their hair flows over their Back and turns Gold!"
new/obj/techs/Overlays/Crater_Center(src.loc)
src.form = "Super Saiyan 3"
if("Super Saiyan 3")if(src.powerlevel_max >= 10000000)
if(!src.doing) src.doing ++
src.Icon_State("enrage")
src.frozen = 1
sleep(trans_time)
src.Power_Redefine()
src.overlays -= src.hair_ssj3
src.overlays += src.hair_ssj4
src.overlays -= aura
src.underlays += ssj_aura
spawn(25) src.underlays -= ssj_aura
src.overlays -= big_blue_elec
src.overlays += big_red_elec
src.powerlevel *= 633
src.ki *= 628
src.strength *= 630
src.defence *= 629
src.block += 12
src.dodge += 15
src.critical += 12
src.reflect += 12
src.counter += 15
src.speed = 0.5
view(6) << "<font color = yellow>[src.name]'s screams in rage as their hair turns Black as Red fur sprouts on their Chest!"
if(src.skin == "dark") src.icon = 'Male - Dark SSJ 4.dmi'
else src.icon = 'Male - SSJ 4.dmi'
new/obj/techs/Overlays/Crater_Center(src.loc)
src.form = "Super Saiyan 4"
if("Super Saiyan 4")if(src.powerlevel_max >= 50000000)
if(!src.doing) src.doing ++
src.Icon_State("enrage")
src.frozen = 1
sleep(trans_time)
src.Power_Redefine()
src.overlays -= src.hair_ssj4
src.overlays += src.hair_ssj5
src.overlays -= aura
src.underlays += ssj_aura
spawn(25) src.underlays -= ssj_aura
src.powerlevel *= 750
src.ki *= 750
src.strength *= 750
src.defence *= 750
src.block += 12
src.dodge += 15
src.critical += 12
src.reflect += 12
src.counter += 15
src.speed = 0.5
view(6) << "<font color = yellow>[src.name]'s screams in rage as their hair turns White!"
src.Skin_Apply()
new/obj/techs/Overlays/Crater_Center(src.loc)
src.form = "Super Saiyan 5"
if("Super Saiyan 5")if(src.powerlevel_max >= 75000000)
if(!src.doing) src.doing ++
src.Icon_State("enrage")
src.frozen = 1
sleep(trans_time)
src.Power_Redefine()
src.overlays -= src.hair_ssj5
src.overlays += src.hair_ssj6
src.overlays -= aura
src.underlays += ssj_aura
spawn(25) src.underlays -= ssj_aura
src.powerlevel *= 875
src.ki *= 875
src.strength *= 875
src.defence *= 875
src.block += 12
src.dodge += 15
src.critical += 12
src.reflect += 12
src.counter += 15
src.speed = 0.5
view(6) << "<font color = yellow>[src.name]'s screams in rage as their hair turns Blue!"
src.Skin_Apply()
new/obj/techs/Overlays/Crater_Center(src.loc)
src.form = "Super Saiyan 6"
if("Super Saiyan 6")if(src.powerlevel_max >= 100000000)
if(!src.doing) src.doing ++
src.Icon_State("enrage")
src.frozen = 1
sleep(trans_time)
src.Power_Redefine()
src.overlays -= src.hair_ssj6
src.overlays += src.hair_ssj7
src.overlays -= aura
src.underlays += ssj_aura
spawn(25) src.underlays -= ssj_aura
src.powerlevel *= 1000
src.ki *= 8000
src.strength *= 1200
src.defence *= 1000
src.block += 12
src.dodge += 15
src.critical += 12
src.reflect += 12
src.counter += 15
src.speed = 0.1
view(6) << "<font color = yellow>[src.name]'s screams in rage as their hair turns a dark red and a red fur sprouts from their Chest!!"
if(src.skin == "dark") src.icon = 'Male - Dark SSJ7.dmi'
else src.icon = 'Male - SSJ7.dmi'
new/obj/techs/Overlays/Crater_Center(src.loc)
src.form = "Super Saiyan 7"
src.frozen = 0
src.safe = 0
if(src.doing) src.doing --
src.Icon_State("")


I'm messing arround in a DBZ source, hosting it, changing it, just trying to improve my code skills since i started to learn it like, 2 weeks ago.
This part of code in special is suposed to check the chromossome of the player and based on which one it is trans him, but what it's doing is. As soon as one presses the trans button it proceeds to change the chromossome from whichever it is to "Honour" and do the trans for it, then proceeds to change the variable to "Pride" and do the same, then "Legend" and do the same... I have absolutelly no idea what's causing it, any help will be apreciated


Best response
You want to use "==", not "="

= is the assignment operator. It sets the variable on the left to the value on the right.

== is the equality operator. It checks to see if two values are the same.
i refuse to update till they add a warning for that lol
Almost every modern programming language allows assignment chaining like this. DM is joining the ranks. It was the weird language for not having it.
valid point i guess. im not that experienced in many modern(or any) languages yet so when i do write in them, mostly for class, i dont make that mistake cause of how many times i look over my code
I think allowing = in if checks is a big mistake personally, I wish it was a flag to DreamMaker
In response to Optimumtact
Optimumtact wrote:
I think allowing = in if checks is a big mistake personally, I wish it was a flag to DreamMaker

What it really needs is a warning when it's used without parentheses around the expression; that's how C and a lot of other languages do it. The main thing is, I need to add some kind of flag in the parser to account for this. It needs to be handled in if() statements, while() loops, and the second item of a for() statement.
I often help new programmers with code where their mistake is using = instead of == on 510.

Luckily it's a compile error and not a silent logic bug that would cause unexpected issues.

Still think it's a bad idea

Also sorry for necroing and old post, I just feel really strongly about this
It helps to put the value ur checking with on the left instead of the right in most simple cases
That being said I just finished a c course and it made me appreciate assignment chaining
In response to Zagros5000
Yoda conditions are those. Good stuff, it is.

https://en.m.wikipedia.org/wiki/Yoda_conditions