I have fully coded my Beyblade stuff, and it has no errors, and it works in game. Just incase you were wondering how I did it I will give you the code. I admit it is probably not even 0.5% as efficient as your method, but it works, and I can understand it.
obj var TotAtt TotDef TotEnd AttAtt AttDef AttEnd WeDAtt WeDDef WeDEnd BasAtt BasDef BasEnd AttRing WeightDisk Base
obj Beyblade Custom
mob proc BeybladeCheck() //To check if they have a full beyblade src.HasBeyblade = 1 // assume this until we find out otherwise var/obj/Beyblade/Custom/C = locate() in src if(!C.AttRing) src.HasBeyblade = 0 src<<"You do not have a complete Beyblade, you are missing an Attack Ring!" if(!C.WeightDisk) src.HasBeyblade = 0 src<<"You do not have a complete Beyblade, you are missing a Weight Disk!" if(!C.Base) src.HasBeyblade = 0 src<<"You do not have a complete Beyblade, you are missing a Base!" else src<<"You have a complete Beyblade!" BeybladeStatCheck() //This is to work out the stats of your beyblade! BeybladeCheck()//Do this now to make sure they have a full beyblade if(src.HasBeyblade) var/obj/Beyblade/Custom/A = locate() in src A.TotAtt = A.AttAtt + A.WeDAtt + A.BasAtt A.TotDef = A.AttDef + A.WeDDef + A.BasDef A.TotEnd = A.AttEnd + A.WeDEnd + A.BasEnd src<<"<U>You Beyblades Stats:</U>" src<<"Attack = [A.TotAtt]" src<<"Defence = [A.TotDef]" src<<"Endurance = [A.TotEnd]" else src<<"You do not have a complete Beyblade!"
Again, I admit it is very long, but I don't mind much!
~GokuSS4Neo~