This file is indexed.

/usr/share/games/adanaxisgpl/mushruby/MushPiece.rb is in adanaxisgpl-data 1.2.5.dfsg.1-5ubuntu1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
#%Header {
##############################################################################
#
# File data-adanaxis/mushruby/MushPiece.rb
#
# Author Andy Southgate 2006-2007
#
# This file contains original work by Andy Southgate.  The author and his
# employer (Mushware Limited) irrevocably waive all of their copyright rights
# vested in this particular version of this file to the furthest extent
# permitted.  The author and Mushware Limited also irrevocably waive any and
# all of their intellectual property rights arising from said file and its
# creation that would otherwise restrict the rights of any party to use and/or
# distribute the use of, the techniques and methods used herein.  A written
# waiver can be obtained via http://www.mushware.com/.
#
# This software carries NO WARRANTY of any kind.
#
##############################################################################
#%Header } 9qG9yIBb+iRNrRYsV67wSw
# Class: MushPiece
#
# Description:
#
# This object contains a reference to a game piece.
#
# Method: new
#
# Creates a new MushPost object.  
#
# Parameters:
#
# type - Name of the type to use
#
# Returns:
#
# New MushPiece object
#
# Default:
#
# There is no default constructor.
#
# Example:
#
# (example)
# (end)
#
# Group: Links
#- Wrapper file:doxygen/class_mush_mesh_ruby_post.html
#- Implemetation file:doxygen/class_mush_mesh_posticity.html

class MushPiece < MushObject
  def initialize(inParams = {})
    raise "#{self.class} didn't set @m_defaultType before calling super" unless @m_defaultType
    type = inParams[:type] || @m_defaultType
    idSuffix = inParams[:id_suffix]
    
    @m_id = "#{type}:#{idSuffix}"
    
    @m_post = inParams[:post] || MushPost.new
    @m_meshName = inParams[:mesh_name] || ""
    @m_expireFlag = false
    @m_hitPoints = Float(inParams[:hit_points] || 0.0)
    @m_originalHitPoints = @m_hitPoints
    @m_alphaStutter = Float(inParams[:alpha_stutter] || 0.0)
    @m_renderScale = inParams[:render_scale] || 1.0
    unless @m_renderScale.kind_of?(MushVector)
      @m_renderScale = MushVector.new(@m_renderScale, @m_renderScale, @m_renderScale, @m_renderScale)
    end
    @m_damageFactor = 1.0
    @m_vulnerability = inParams[:vulnerability] || 1.0
    @m_creationMsec = MushGame.cGameMsec
  end

  mush_reader :m_id, :m_originalHitPoints
  mush_writer :m_damageFactor
  mush_accessor :m_post, :m_expireFlag, :m_hitPoints, :m_vulnerability

  def mPostWRef
    @m_post
  end    

  def mDamageFactor(inPiece)
    return @m_damageFactor
  end

  def mAgeMsec
    return MushGame.cGameMsec - @m_creationMsec
  end

  def mHitPointRatio
    @m_hitPoints / @m_originalHitPoints
  end

  def mDamageTake(inDamage, inPiece)
    amount = inDamage * mVulnerability
    @m_hitPoints -= amount
    return amount
  end

  def mEventHandle(event)
    retVal = nil
    case event
      when MushEventCollision: mCollisionHandle(event)
      when MushEventExpiry: mExpiryHandle(event)
      else MushLog.cWarning "Unhandled message #{event.class} in #{self.class}"
    end
    retVal || @m_callInterval
  end
  
  def mFatalCollisionHandle(event)
    @m_expireFlag = true
  end

  def mCollisionHandle(event)
    if @m_hitPoints <= 0.0 && !@m_expireFlag
      @m_expireFlag = true
      mFatalCollisionHandle(event)
    end
  end
  
  def mExpiryHandle(event)
  end
  
end