Beispiel #1
0
        public void IterateOverBlocksInContainer(IEnumerable<Vector3> container, BlockModifier modifier, object[] parameters)
        {
            foreach (Vector3 coordinate in container)
            {
                if (!mBlocks.ContainsKey(coordinate))
                {
                    continue;
                }

                modifier(mBlocks[coordinate], new Vector3(), 0, parameters);
            }
        }
    public bool loadSkills()
    {
        if (SaveLoad.Load())
        {
            SkillTree tree   = GameSave.current.skilltree;
            Skill[]   skills = tree.skills;
            if (skills[0] != null)
            {
                attackModifier = new AttackModifier(skills[0].skillType);
            }
            else
            {
                attackModifier = new AttackModifier(3);
            }
            if (skills[1] != null)
            {
                chargedAttackModifier = new ChargedAttackModifier(skills[1].skillType);
            }
            else
            {
                chargedAttackModifier = new ChargedAttackModifier(103);
            }
            if (skills[2] != null)
            {
                dodgeModifier = new DodgeModifier(skills[2].skillType);
            }
            else
            {
                dodgeModifier = new DodgeModifier(150);
            }
            if (skills[3] != null)
            {
                blockModifier = new BlockModifier(skills[3].skillType);
            }
            else
            {
                blockModifier = new BlockModifier(200);
            }
            activeSkills = new ArrayList();
            if (skills[4] != null)
            {
                activeSkills.Add(new ActiveModifier(skills[4].skillType));
            }
            if (skills[6] != null)
            {
                activeSkills.Add(new ActiveModifier(skills[6].skillType));
            }

            return(true);
        }
        return(false);
    }
	public MainCharacter() : base() {
		actionCds[2] = 3f;
		actionCds[3] = 1.5f;
		actionCds[4] = 5f;
		actionCds[5] = 5f;

		status.regularMoveSpeed = 40f;
		if(!loadSkills()) {
			attackModifier = new AttackModifier(3);
			dodgeModifier = new DodgeModifier(150);
			chargedAttackModifier = new ChargedAttackModifier(103);
			blockModifier = new BlockModifier(200);
			activeSkills = new ArrayList();
			//activeSkills.Add(new ActiveModifier(251));
			//activeSkills.Add(new ActiveModifier(258));
		}

		div = MainCharacterDiv.Division;
	}
	public bool loadSkills() {
		if(SaveLoad.Load()) {
			SkillTree tree = GameSave.current.skilltree;
			Skill[] skills = tree.skills;
			if(skills[0]!=null)attackModifier = new AttackModifier(skills[0].skillType);
			else attackModifier = new AttackModifier(3);
			if(skills[1]!=null)chargedAttackModifier = new ChargedAttackModifier(skills[1].skillType);
			else chargedAttackModifier = new ChargedAttackModifier(103);
			if(skills[2]!=null)dodgeModifier = new DodgeModifier(skills[2].skillType);
			else dodgeModifier = new DodgeModifier(150);
			if(skills[3]!=null)blockModifier = new BlockModifier(skills[3].skillType);
			else blockModifier = new BlockModifier(200);
			activeSkills = new ArrayList();
			if(skills[4]!=null)activeSkills.Add(new ActiveModifier(skills[4].skillType));
			if(skills[6]!=null)activeSkills.Add(new ActiveModifier(skills[6].skillType));

			return true;
		}
		return false;
	}
    public MainCharacter() : base()
    {
        actionCds[2] = 3f;
        actionCds[3] = 1.5f;
        actionCds[4] = 5f;
        actionCds[5] = 5f;

        status.regularMoveSpeed = 40f;
        if (!loadSkills())
        {
            attackModifier        = new AttackModifier(3);
            dodgeModifier         = new DodgeModifier(150);
            chargedAttackModifier = new ChargedAttackModifier(103);
            blockModifier         = new BlockModifier(200);
            activeSkills          = new ArrayList();
            //activeSkills.Add(new ActiveModifier(251));
            //activeSkills.Add(new ActiveModifier(258));
        }

        div = MainCharacterDiv.Division;
    }
Beispiel #6
0
 private string FormatLine(BlockModifier m, string input)
 {
     input = m.ModifyLine(input);
     return(m.Conclude(input));
 }
        public static ContainerFile Create(string fileName, long maximumSizeInBytes, uint maximumFiles)
        {
            if (maximumSizeInBytes <= 0)
                        {
                                throw new InvalidDiskSizeException("maximum size must be larger than 0");
                        }

                        if (maximumFiles <= 0)
                        {
                                throw new InvalidFileCountException("maximum amount of files must be larger than 0");
                        }

                        uint totalBlocks = Block.BlocksNeeded(maximumSizeInBytes);
                        uint indexNodesBlocks = maximumFiles / IndexNode.INDEX_NODES_PER_BLOCK + 1;

                        if (indexNodesBlocks >= totalBlocks)
                        {
                                throw new InvalidFileCountException(string.Format("cannot manage up to {0} files with a maximum disk space of {1} bytes", maximumFiles, maximumSizeInBytes));
                        }

                        if (File.Exists(fileName))
                        {
                                File.Delete(fileName);
                        }

                        var freeBlocksStack = new Stack<uint>();
                        freeBlocksStack.Push(0);

                        var superBlock = new SuperBlock
                                {
                                        BlockIndex = SuperBlock.SUPER_BLOCK_LOCATION,
                                        TotalBlocks = totalBlocks,
                                        FreeBlocks = totalBlocks - 1 - indexNodesBlocks,
                                        HighestDataBlock = 1 + indexNodesBlocks,
                                        TotalInodes = indexNodesBlocks * (Block.SIZE / IndexNode.SIZE),
                                        FreeIndexNodes = indexNodesBlocks * (Block.SIZE / IndexNode.SIZE),
                                        IndexNodesBlocks = indexNodesBlocks,
                                        FreeIndexNodesQueueMaxSize = ((Block.SIZE - SuperBlock.STATIC_SIZE) / 4) / 4,
                                        FreeIndexNodesQueue = new Queue<uint>(),
                                        FreeBlockStackMaxSize = ((Block.SIZE - SuperBlock.STATIC_SIZE) / 4) / 4 * 3,
                                        FreeBlockStack = freeBlocksStack
                                };

                        var blockModifier = new BlockModifier(fileName);
                        blockModifier.WriteBlock(superBlock);

                        return new ContainerFile(fileName);
        }
Beispiel #8
0
        public void IterateOverBlocksInContainerInRadius(IEnumerable<Vector3> container, Vector3 position, float radius, BlockModifier modifier, object[] parameters)
        {
            Vector3 offset = new Vector3(radius, 0, radius);
            Vector3 minCoordinate = CoordinateFromPosition(position - offset);
            Vector3 maxCoordinate = CoordinateFromPosition(position + offset);

            for (int z = (int)minCoordinate.Z; z <= (int)maxCoordinate.Z; z++)
            {
                for (int x = (int)minCoordinate.X; x <= (int)maxCoordinate.X; x++)
                {
                    Vector3 coordinate = new Vector3(x, minCoordinate.Y, z);
                    if (container == null || container.Contains(coordinate))
                    {
                        LevelBlock block;
                        if (mBlocks.TryGetValue(coordinate, out block))
                        {
                            modifier(block, (position - coordinate * BLOCK_SIZE) / BLOCK_SIZE, radius / BLOCK_SIZE, parameters);
                        }
                    }
                }
            }
        }
Beispiel #9
0
 public void ModifySingleBlock(Vector3 coordinate, BlockModifier modifier, object[] parameters)
 {
     LevelBlock block;
     if (mBlocks.TryGetValue(coordinate, out block))
     {
         modifier(block, new Vector3(), 0, parameters);
     }
 }
Beispiel #10
0
 public void IterateOverEveryBlock(BlockModifier modifier, object[] parameters)
 {
     foreach (LevelBlock block in mBlocks.Values)
     {
         modifier(block, new Vector3(), 0, parameters);
     }
 }
Beispiel #11
0
 public void IterateOverBlocksInRadius(Vector3 position, float radius, BlockModifier modifier, object[] parameters)
 {
     IterateOverBlocksInContainerInRadius(null, position, radius, modifier, parameters);
 }