public override bool SpearStick(Weapon source, float dmg, BodyChunk chunk, PhysicalObject.Appendage.Pos onAppendagePos, Vector2 direction)
 {
     if (parry > 0f)
     {
         return(false);
     }
     return(true);
 }
Exemplo n.º 2
0
 public void ApplyForceOnAppendage(PhysicalObject.Appendage.Pos pos, Vector2 momentum)
 {
     if (pos.prevSegment > 0)
     {
         this.tentacle.tChunks[pos.prevSegment - 1].pos += momentum / 0.2f * (1f - pos.distanceToNext);
         this.tentacle.tChunks[pos.prevSegment - 1].vel += momentum / 0.1f * (1f - pos.distanceToNext);
     }
     this.tentacle.tChunks[pos.prevSegment].pos += momentum / 0.2f * pos.distanceToNext;
     this.tentacle.tChunks[pos.prevSegment].vel += momentum / 0.1f * pos.distanceToNext;
 }
Exemplo n.º 3
0
 public void ApplyForceOnAppendage(PhysicalObject.Appendage.Pos pos, Vector2 momentum)
 {
     if (pos.prevSegment > 0)
     {
         this.tentacles[pos.appendage.appIndex].tChunks[pos.prevSegment - 1].pos += momentum / 0.04f * (1f - pos.distanceToNext);
         this.tentacles[pos.appendage.appIndex].tChunks[pos.prevSegment - 1].vel += momentum / 0.04f * (1f - pos.distanceToNext);
     }
     else
     {
         this.tentacles[pos.appendage.appIndex].connectedChunk.pos += momentum / this.tentacles[pos.appendage.appIndex].connectedChunk.mass * (1f - pos.distanceToNext);
         this.tentacles[pos.appendage.appIndex].connectedChunk.vel += momentum / this.tentacles[pos.appendage.appIndex].connectedChunk.mass * (1f - pos.distanceToNext);
     }
     this.tentacles[pos.appendage.appIndex].tChunks[pos.prevSegment].pos += momentum / 0.04f * pos.distanceToNext;
     this.tentacles[pos.appendage.appIndex].tChunks[pos.prevSegment].vel += momentum / 0.04f * pos.distanceToNext;
 }
        public Vector2 OnAppendageDirection(PhysicalObject.Appendage.Pos pos)
        {
            Vector2 vector2 = pos.prevSegment >= this.segments.Length - 2 ? Utils.DirVec(this.segments[pos.prevSegment], this.segments[pos.prevSegment + 1]) : Utils.DirVec(this.segments[pos.prevSegment + 1], this.segments[pos.prevSegment + 2]);

            return(Vector3.Slerp(Utils.DirVec(this.segments[pos.prevSegment], this.segments[pos.prevSegment + 1]), vector2, pos.distanceToNext));
        }
 public Vector2 OnAppendagePosition(PhysicalObject.Appendage.Pos pos)
 {
     return(Vector2.Lerp(this.segments[pos.prevSegment], this.segments[pos.prevSegment + 1], pos.distanceToNext));
 }
Exemplo n.º 6
0
        private static void Creature_Violence(On.Creature.orig_Violence orig, Creature self, BodyChunk source, UnityEngine.Vector2?directionAndMomentum, BodyChunk hitChunk, PhysicalObject.Appendage.Pos hitAppendage, Creature.DamageType type, float damage, float stunBonus)
        {
            if (self is Player && !AbstractPhysicalObjectHK.GetField(self.abstractPhysicalObject).networkObject&& !self.dead)
            {
                /*
                 * #Violence packet#
                 * packetType
                 * source
                 * damageType
                 */

                if (MonklandSteamManager.isInGame)
                {
                    MonklandSteamManager.GameManager.SendViolence(self, source, type, damage);
                }
            }

            orig(self, source, directionAndMomentum, hitChunk, hitAppendage, type, damage, stunBonus);
        }
Exemplo n.º 7
0
 //Add scavs to the flee list, changing their behaviour to LeaveRoom while they're in it
 private static void Scavenger_Violence(On.Scavenger.orig_Violence orig, Scavenger self, BodyChunk source, Vector2?directionAndMomentum, BodyChunk hitChunk, PhysicalObject.Appendage.Pos hitAppendage, Creature.DamageType type, float damage, float stunBonus)
 {
     if (Flee && self.room != null && self.room.abstractRoom.shelter && self.room.world.game.IsStorySession)
     {
         shelter = self.room.abstractRoom.name;
         fleeList.Add(self);
         self.AI.behavior = ScavengerAI.Behavior.LeaveRoom;
     }
     orig.Invoke(self, source, directionAndMomentum, hitChunk, hitAppendage, type, damage, stunBonus);
 }