Wrectified - Weapon Manager "simplified"

if you want a look at the code, you may just want to get the .blend as the #code tag seems to be murdering this script

add item to list
]
import bge




def main():


    cont = bge.logic.getCurrentController()
    WeaponManager = cont.owner


    sens = cont.sensors['Collision']
   
    if sens.positive:
        if sens.hitObject['AddItem'] not in WeaponManager['WeaponList']:
            if WeaponManager['WeaponList']=="Empty":
                WeaponManager['WeaponList']=[]
            WeaponManager['WeaponList']+=[sens.hitObject['AddItem']]
            WeaponManager['Display']=str(WeaponManager['WeaponList'])
            sens.hitObject.endObject()
       


main()



index manager

import bge




def main():


    cont = bge.logic.getCurrentController()
    WeaponManager = cont.owner


    CycleUp=cont.sensors['[']
    CycleDown=cont.sensors[']']
    length =0
    if WeaponManager['WeaponList']!="Empty":
        for item in WeaponManager['WeaponList']:
            length+=1
        print("the index is "+str(WeaponManager['Index']))
        print("the length is "+str(length))    
        if CycleUp.positive and WeaponManager['SwitchTimer']==0:
            if  WeaponManager['Index'] + 1 < length:
                WeaponManager['Index']+=1
                WeaponManager['SwitchTimer']=30
            else:
                WeaponManager['Index']=0
                WeaponManager['SwitchTimer']=30
        if CycleDown.positive and WeaponManager['SwitchTimer']==0:
            if  WeaponManager['Index'] - 1 > -1:
                WeaponManager['Index']-=1
                WeaponManager['SwitchTimer']=30
            else:
                WeaponManager['Index']= length-1
                WeaponManager['SwitchTimer']=30
                    
                    
                                
               


main()




change weapon


import bge




def main():


    cont = bge.logic.getCurrentController()
    WeaponManager = cont.owner
    lengthC=0
    scene=bge.logic.getCurrentScene()
    
    for item in WeaponManager.children:
        lengthC+=1
    if lengthC>0:
        WeaponManager[WeaponManager.children[0]['AmmoType']]+=WeaponManager.children[0]['ClipSize']
        WeaponManager.children[0].endObject()
            
    Added= scene.addObject(WeaponManager['WeaponList'][WeaponManager['Index']],WeaponManager,0)
    
    Added.setParent(WeaponManager,0,0)
    Added.applyMovement((0,2,0),1)
    if WeaponManager[Added['AmmoType']]>=Added['ClipSize']:
        Added['Clip']=Added['ClipSize']
        WeaponManager[Added['AmmoType']]-=Added['ClipSize']
    else:
        Added['Clip']=WeaponManager[Added['AmmoType']]
        WeaponManager[Added['AmmoType']]=0
        
    
main()

Attachments

WeaponMangerSimplifiedWAnim2.blend (581 KB)

Update : All code is now commented

Attachments

WeaponMangerSimplifiedWComments.blend (608 KB)

Attachments

WeaponMangerSimplifiedWCommentsAndNewProjectileSystem.blend (610 KB)