Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 13 Next capture
2021 2022 2023
1 capture
13 Jun 22 - 13 Jun 22
sparklines
Close Help
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
  • Asset Store
  • Get Unity

UNITY ACCOUNT

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account
  • Blog
  • Forums
  • Answers
  • Evangelists
  • User Groups
  • Beta Program
  • Advisory Panel

Navigation

  • Home
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
    • Blog
    • Forums
    • Answers
    • Evangelists
    • User Groups
    • Beta Program
    • Advisory Panel

Unity account

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account

Language

  • Chinese
  • Spanish
  • Japanese
  • Korean
  • Portuguese
  • Ask a question
  • Spaces
    • Default
    • Help Room
    • META
    • Moderators
    • Topics
    • Questions
    • Users
    • Badges
  • Home /
avatar image
0
Question by cdrandin · Jan 11, 2013 at 07:08 AM ·

How can I instantiate my variables in Boo, having problems?

I have a Player Attributes class: import UnityEngine

 class Stat ():
     public current as int
     public max     as int
     
 class PlayerAttributes ( MonoBehaviour ): 
     public Name          as string
     public level         as int
     public hp            as Stat = Stat()
     public ep            as Stat = Stat()
     
     public strength      as int   // How accurate and how much damage with melee attacks
     public dexterity     as int   // How accurate and how much damage with ranged attacks
     public vitality      as int   // How many hit points he has 
     public power         as int   // How much damage his energy attacks deal
     public resistance    as int   // How much defense he has against energy attacks
     public agility       as int
     public speed         as int   // How fast character attacks
     
     public meleeAtk      as int
     public rangedAtk     as int
     public defense       as int
     public powerAtk      as int
     public powerDef      as int
     public initiative    as single
     
     public exp             as Stat = Stat()
     
     def SetInitialStats ( 
                       name       as string, 
                       strength   as int, 
                       dexterity  as int, 
                       vitality   as int, 
                       power      as int, 
                       resistance as int, 
                       agility    as int, 
                       speed      as int, 
                       exp        as int
                     ):
         self.level      = 1
         self.Name       = name
         self.strength   = strength
         self.dexterity  = dexterity
         self.vitality   = vitality
         self.power      = power
         self.resistance = resistance
         self.agility    = agility
         self.speed      = speed
         self.exp.max    = self.level * (self.level + 1) * 500
         AddExp(exp)
         
         
     def AddExp ( experience as int ):
         exp.current += experience
         
         while exp.current >= exp.max and level < 99:
             exp.current -= exp.max
             exp.max      = level * (level + 1) * 500
             level       += 1
             IncreaseStats()
         
     def IncreaseStats ():
         strength   += 1
         dexterity  += 1
         vitality   += 1
         power      += 1
         resistance += 1
         agility    += 1
         speed      += 1
         
         meleeAtk   = (level * 7) + strength
         rangedAtk  = (level * 7) + dexterity
         defense    = (level * 2) + agility
         powerAtk   = (level * 7) + power
         powerDef   = (level * 2) + resistance
         initiative = 20 + ((speed * level)/1500)
         
         hp.max     = ((level * 5) + vitality) * 10
         hp.current = hp.max
         
         ep.max       = ((level * 5) + power)
         ep.current = ep.max

Jut anything simple really. Well I read in the docs to not use constructors with MonoBehaviour, but I try instantiating my variables with the Start() function which is SetInitialStats (...)

So In another script in the Start() function I call it up like this

 Player = PlayerAttributes.SetInitialStats('Robo', 20, 21, 19, 20, 18, 22, 22, 57000)

I get the warning: ' An instance of type 'PlayerAttributes' is required to access non static member'

Not sure what else I can do to setup my beginning stats.

I got this to work I Unityscript which worked with a constructor without MonoBehaviour so I don't know where else to go from here. I would like to stay using Boo.

Comment
Add comment · Show 1
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users
avatar image cdrandin · Aug 14, 2013 at 03:20 AM 0
Share

Try this. Replace SetInitialStats with constructor

 def constructor( 
                 name       as string, 
                 strength   as int, 
                 dexterity  as int, 
                 vitality   as int, 
                 power      as int, 
                 resistance as int, 
                 agility    as int, 
                 speed      as int, 
                 exp        as int
               ):
        self.level      = 1
        self.Name       = name
        self.strength   = strength
        self.dexterity  = dexterity
        self.vitality   = vitality
        self.power      = power
        self.resistance = resistance
        self.agility    = agility
        self.speed      = speed
        self.exp.max    = self.level * (self.level + 1) * 500
        AddExp(exp)


Player = PlayerAttributes('Robo', 20, 21, 19, 20, 18, 22, 22, 57000)

0 Replies

· Add your reply
  • Sort: 

Your answer

Hint: You can notify a user about this post by typing @username

Up to 2 attachments (including images) can be used with a maximum of 524.3 kB each and 1.0 MB total.

Follow this Question

Answers Answers and Comments

8 People are following this question.

avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image

Related Questions

Can I access a script referenced in another script (without getcomponent)? 5 Answers

My PC can't open any sort of script 1 Answer

After SetActive(false/true) scripts no longer update? 0 Answers

translate forward dont work 1 Answer

Scripts of Objects which I've deleted through the editor still exist and are run 0 Answers


Enterprise
Social Q&A

Social
Subscribe on YouTube social-youtube Follow on LinkedIn social-linkedin Follow on Twitter social-twitter Follow on Facebook social-facebook Follow on Instagram social-instagram

Footer

  • Purchase
    • Products
    • Subscription
    • Asset Store
    • Unity Gear
    • Resellers
  • Education
    • Students
    • Educators
    • Certification
    • Learn
    • Center of Excellence
  • Download
    • Unity
    • Beta Program
  • Unity Labs
    • Labs
    • Publications
  • Resources
    • Learn platform
    • Community
    • Documentation
    • Unity QA
    • FAQ
    • Services Status
    • Connect
  • About Unity
    • About Us
    • Blog
    • Events
    • Careers
    • Contact
    • Press
    • Partners
    • Affiliates
    • Security
Copyright © 2020 Unity Technologies
  • Legal
  • Privacy Policy
  • Cookies
  • Do Not Sell My Personal Information
  • Cookies Settings
"Unity", Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere (more info here). Other names or brands are trademarks of their respective owners.
  • Anonymous
  • Sign in
  • Create
  • Ask a question
  • Spaces
  • Default
  • Help Room
  • META
  • Moderators
  • Explore
  • Topics
  • Questions
  • Users
  • Badges