示例#1
0
 public override void RecreateSticksFromAbstract()
 {
     for (int i = 0; i < abstractPhysicalObject.stuckObjects.Count; i++)
     {
         if (abstractPhysicalObject.stuckObjects[i] is AbstractPhysicalObject.AbstractSpearStick && (abstractPhysicalObject.stuckObjects[i] as AbstractPhysicalObject.AbstractSpearStick).Spear == abstractPhysicalObject && (abstractPhysicalObject.stuckObjects[i] as AbstractPhysicalObject.AbstractSpearStick).LodgedIn.realizedObject != null)
         {
             AbstractPhysicalObject.AbstractSpearStick abstractSpearStick = abstractPhysicalObject.stuckObjects[i] as AbstractPhysicalObject.AbstractSpearStick;
             stuckInObject     = abstractSpearStick.LodgedIn.realizedObject;
             stuckInChunkIndex = abstractSpearStick.chunk;
             stuckBodyPart     = abstractSpearStick.bodyPart;
             stuckRotation     = abstractSpearStick.angle;
             ChangeMode(Mode.StuckInCreature);
         }
         else if (abstractPhysicalObject.stuckObjects[i] is AbstractPhysicalObject.AbstractSpearAppendageStick && (abstractPhysicalObject.stuckObjects[i] as AbstractPhysicalObject.AbstractSpearAppendageStick).Spear == abstractPhysicalObject && (abstractPhysicalObject.stuckObjects[i] as AbstractPhysicalObject.AbstractSpearAppendageStick).LodgedIn.realizedObject != null)
         {
             AbstractPhysicalObject.AbstractSpearAppendageStick abstractSpearAppendageStick = abstractPhysicalObject.stuckObjects[i] as AbstractPhysicalObject.AbstractSpearAppendageStick;
             stuckInObject    = abstractSpearAppendageStick.LodgedIn.realizedObject;
             stuckInAppendage = new Appendage.Pos(stuckInObject.appendages[abstractSpearAppendageStick.appendage], abstractSpearAppendageStick.prevSeg, abstractSpearAppendageStick.distanceToNext);
             stuckRotation    = abstractSpearAppendageStick.angle;
             ChangeMode(Mode.StuckInCreature);
         }
     }
 }
示例#2
0
 private static void SpearAppStickCtorHK(On.AbstractPhysicalObject.AbstractSpearAppendageStick.orig_ctor orig, AbstractPhysicalObject.AbstractSpearAppendageStick self,
                                         AbstractPhysicalObject spear, AbstractPhysicalObject stuckIn, int appendage, int prevSeg, float distanceToNext, float angle)
 {
     if (MonklandSteamManager.isInGame && spear != null && stuckIn != null && spear.Room != null && self.A != null && self.B != null)
     {
         AbsPhyObjFields As = GetField(self.A);
         AbsPhyObjFields Bs = GetField(self.B);
         if (As.networkObject || Bs.networkObject)
         {
             MonklandSteamManager.EntityManager.SendSpearAppendageStick(self.A, self.B, self.A.Room, appendage, prevSeg, distanceToNext, angle);
         }
     }
     orig(self, spear, stuckIn, appendage, prevSeg, distanceToNext, angle);
 }