I have sucessfully used atype dytype keyword in updating angles and dihedrals. As Kang mentioned a bond can induce more than one angle type. We can utilize the set keyword to change the angle types based on bonded neighbours.
For example consider the bond between i and j then the angles introduced will be of the form
i+2 i j
i+3 i j
i j j+2
The same goes for dihedrals
i+1 i j j+1
i j j+1 j+2
The same applies for partial charges.
One has to be little bit creative (and careful) to accomplish this in lammps code. I have done this and it is possible.